diff --git a/requestinvitation.info b/requestinvitation.info
index 307530a..4e72194 100644
--- a/requestinvitation.info
+++ b/requestinvitation.info
@@ -1,5 +1,6 @@
 name = Request Invitation
 description = Allows users to request an invitation by using only their email.
 dependencies[] = invite
+files[] = requestinvitation.rules.inc
 package = Invite
 core = 7.x
diff --git a/requestinvitation.module b/requestinvitation.module
index e05fd16..870df5f 100644
--- a/requestinvitation.module
+++ b/requestinvitation.module
@@ -10,7 +10,6 @@
  * Implements hook_help().
  */
 function requestinvitation_help($path, $arg) {
-
   switch ($path) {
     case 'admin/help#requestinvitation':
       $output = '<p>' . t('For semi-private sites or sites which are still in beta require users who are interested in the product to first request for an invitation for the site and administrators can send an invitation after moderating the user request list. This module is prepared focusing on this purpose.') . '</p>';
@@ -24,7 +23,6 @@ function requestinvitation_help($path, $arg) {
  * Implements hook_menu().
  */
 function requestinvitation_menu() {
-
   $items['admin/config/people/requestinvitation'] = array(
     'title' => 'Request invitation',
     'description' => 'Configure Request Invitation settings.',
@@ -39,7 +37,7 @@ function requestinvitation_menu() {
     'page arguments' => array('requestinvitation_form', 'page'),
     'access arguments' => array('request invitation'),
     'type' => MENU_CALLBACK,
-    );
+  );
 
   return $items;
 }
@@ -80,7 +78,7 @@ function requestinvitation_block_view($delta) {
 /**
  * Implements hook_permission().
  */
-function  requestinvitation_permission() {
+function requestinvitation_permission() {
   return array(
     'administer requests' => array(
       'title' => t('Administer invitation requests'),
@@ -97,7 +95,6 @@ function  requestinvitation_permission() {
  * Forms API callback; defines the administration form.
  */
 function requestinvitation_configure_form() {
-
   $results = db_select('requestinvitation', 'r')
     ->fields('r')
     ->execute();
@@ -335,7 +332,7 @@ function requestinvitation_form($form, &$form_state, $op = 'block') {
     break;
   }
 
-  return $form ;
+  return $form;
 }
 
 /**
@@ -344,7 +341,6 @@ function requestinvitation_form($form, &$form_state, $op = 'block') {
  * Filters out invalid emails and emails that have already been posted for a request.
  */
 function requestinvitation_form_validate($form, &$form_state) {
-
   if (trim($form_state['values']['email']) == '') {
     form_set_error('email', t('Enter your email.'));
     drupal_goto('requestinvitation');
@@ -366,7 +362,7 @@ function requestinvitation_form_validate($form, &$form_state) {
  * Forms API callback; processes the request form.
  */
 function requestinvitation_form_submit($form, &$form_state) {
-    requestinvitation_form_save($form_state['values']['email']) ;
+  requestinvitation_form_save($form_state['values']['email']) ;
 }
 
 /**
@@ -376,7 +372,12 @@ function requestinvitation_form_submit($form, &$form_state) {
  *   The email that has been posted with the request.
  */
 function requestinvitation_form_save($email) {
-    if (db_query("INSERT INTO {requestinvitation} (email, timestamp, status, approved) VALUES (:email, :time, :status, :approved)", array(':email' => $email, ':time' => REQUEST_TIME, ':status' => 0, ':approved' => 0)) ) {
-      drupal_set_message(t('Your request has been sent.'), 'status');
+  if (db_query("INSERT INTO {requestinvitation} (email, timestamp, status, approved) VALUES (:email, :time, :status, :approved)", array(':email' => $email, ':time' => REQUEST_TIME, ':status' => 0, ':approved' => 0)) ) {
+    // Trigger rules if enabled
+    if (module_exists('rules')) {
+      rules_invoke_event('requestinvitation_submitted');
     }
+    
+    drupal_set_message(t('Your request has been sent.'), 'status');
+  }
 }
diff --git a/requestinvitation.rules.inc b/requestinvitation.rules.inc
index e69de29..393d61b 100644
--- a/requestinvitation.rules.inc
+++ b/requestinvitation.rules.inc
@@ -0,0 +1,24 @@
+<?php
+
+/**
+ * @file
+ * Rules specific functions that expose requestinvition actions.
+ *
+ * Simple as could be as we don't want to expose any real data.
+ */
+
+/**
+ * Implements hook_rules_event_info().
+ *
+ * @ingroup rules
+ */
+function requestinvitation_rules_event_info() {
+  $items = array();
+  
+  $items['requestinvitation_submitted'] = array(
+    'label' => t('Invite request has been submitted'),
+    'group' => t('Invite'),
+  );
+
+  return $items;
+}
