Manage Hooks
Hooks are a mechanism to trigger custom code on the occurrence of events. In other words, Hooks are notifications sent to any external application (which can be accessed through a web address) from Mifos X in the format the external application wants. Each template during hook creation represents custom behavior on what actions should be taken on the triggering of a registered event for a hook. The action taken might be firing an HTTP request to another server or executing an internal code.
In order for Mifos X to send webhook payloads, your server needs to be accessible from the Internet. Mifos X will send along a few HTTP headers to differentiate between event types.
X-Mifos-Entity - The entity type that was triggered.
X-Mifos-Action - The action triggered on the entity type.
X-Mifos-Platform-TenantId - The tenant which experienced the event.
You can create two types of Hooks using Hook Templates.
Web
SMS Bridge
Create a Web Hook
Go to Admin >> System and click on Manage Hooks.
2. Click on 'Manage Hooks' and then click on '+Create a Hook' to see the following window. (Here, select Hook Template as "Web" from drop-down menu)
3. "Create a Web Hook" Fields:
Sl.No | Field Name | Drop-Down Parameters | Description |
|---|---|---|---|
1 | Hook template |
| Select the 'Web' hook in this case. |
2 | Display Name | None | The name of the template that is being called. |
3 | Active | None | Please Check it to trigger the hook. |
4 | Content Type | None | The format in which the external application is expecting the notifications to come in. JSON (application/json) or FORM (application/x-www-form-urlencoded). |
5 | PayLoad URL | None | The web address at which the external application is expecting notifications to come in from Mifos X. |
6 | Events |
| You can select any one of the event for which the hook is triggered for. |
7 | Select Entity |
| For each selected event (Example: Portfolio), you have to select the entity from drop-down list like, Loan, Center, Client etc (for Portfolio event) |
8 | Select Action |
| For each selected Event and Entity, you have to select the specific action from the drop-down list. |
4. Click on "Submit" button to create a 'Web' Hook.
Create an SMS Bridge Hook
Note :i) You need to clone https://github.com/mgeiss/mifos-twilio-bridge and do a gradlew bootRun to start the application which will act as a bridge between Mifos X and Twilio.
ii) Your mobile number should be registered to twilio. (See the link for more information: http://www.twilio.com/help/faq/phone-numbers )
Go to Admin >> System >> Manage Hooks.
Click on 'Manage Hooks' and then click on '+Create a Hook' to see the following window. (Here, select Hook Template as "SMS Bridge" from drop-down menu)
'Create SMS Bridge Hook' Fields:
Sl.No
Field Name
Drop-Down Parameters
Description
1
Hook template
Web
SMS Bridge
Select the 'SMS Bridge' hook in this case.
2
Display Name
None
The name of the template that is being called.
3
Active
None
Please Check it to trigger the hook.
4
Payload URL
None
http://localhost:9191/modules/sms, Provide this as Payload URL only for "SMS Bridge", not for "Web" hook template.
5
Phone Number
None
This field has to be the phone number with which the person registered for the SMS service provider (Example: Twilio) and not some random number.
6
SMS Provider
None
The only value this field supports right now is Twilio. (In the future, it can be other providers as well).
7
SMS Provider Account Id
None
It is obtained from the SMS Provider website when you register there. Example:- When you pay and register for an account in Twilio.
8
SMS Provider Token
None
SMS Provider Token is the token generated by the bridge (required to communicate with the SMS provider) on starting the application.
9
Events
Account Transfer
Accounting
Authorization
Configuration
Datatable
Jobs
Organization
Portfolio
Portfolio_Center
Portfolio_Group
Survey
Transaction Loan
Transaction Savings
XBRL Mapping.
You can select any one of the event for which the hook is triggered for. (Note: The only 2 events in Mifos X currently supported by the bridge application are CREATE CLIENT and REPAYMENT LOAN. The bridge application won't react to other events registered for the SMS Bridge Hook.)
7
Select Entity
For each selected event, (Example: Portfolio), you have to select the entity from drop-down list like, Loan, Center, Client, etc ( for Portfolio event)
8
Select Action
For each selected Event and Entity, you have to select the specific action from the drop-down list.
4. Click on 'Submit' button to create a "SMS Bridge" hook.
Associate a UGD template with an SMS Bridge Hook: Click Here to watch the tutorial video.
Note: i. Do not create an SMS Bridge hook with your own mobile number if you have not registered for Twilio.
ii. If you create multiple clients in Mifos X with the same mobile number for testing (by deleting the client and creating a new one), that might not be supported by the bridge application because of unique mobile number constraints.
iii. If you somehow lose/clear the database contents for bridge application, it is better to delete the hook in Mifos X and create a new one.