• Adding a webhook
• Testing your webhook
• Notification types - trigger descriptions
• Notification types - JSON samples
• Deleting a webhook
Overview
Using webhooks, you can notify a third-party software application of selected changes to your WildApricot database.
For example, when you add a new social event to your WildApricot website, you might want to notify and synchronize this event with external services like Google calendars or Outlook calendars, which are not part of your website but may be used by your supporters to manage and view events on their personal calendars. A webhook serves as a bridge that allows your WildApricot website to communicate with these external services, ensuring that the data is kept in sync between the two systems.
Important Note: Working with webhooks requires technical knowledge. If you need help setting up a webhook, you can engage the services of one of our technical partners.
Adding a webhook
To add a webhook to your WildApricot account, follow these steps:
1. Navigate to Apps > Integrations and select Webhooks.
2. Click Add webhook.
3. Enter a name for your webhook and provide the URL for the external service.
4. Select the required authorization type in Authorization settings. Options include:
- None
No authorization credentials will be included in the call request. - Secret token (query)
A token name and token value will be included in the call request. - Basic (heading)
The user name and password you specify will be encoded within a basic authorization heading.
5. In Notification type(s), select the triggers (changes in your WildApricot database) that will notify the external service. For detailed descriptions of each notification trigger, see Notification types below.
6. Activate the webhook by turning the Enable webhook toggle on.
7. Click Save in the top left corner of the screen.
Testing your webhook
To test a webhook, click Test webhook. When the test is complete, the test call status will be displayed. You can then click the View details link to view the test call request and response.
Notification types - trigger descriptions
The table below lists the changes in your WildApricot database that will trigger each notification type.
Type | Triggers |
---|---|
Contact |
|
Membership |
|
Event | Any change to event settings except:
|
Event registration | Any change to event registration details for any registrant, including:
|
Invoice | Any change to any invoice, including:
|
Payment | Any change to any payment, including:
|
Refund | Any change to any refund, including:
|
Renewal |
|
Membership level |
|
Logged email letter |
|
Notification types - JSON samples
The table below shows the format of the resulting JSON message and a sample message for each notification type.
Type | Parameters | Example |
---|---|---|
Contact | Contact.Id | { "AccountId":183112, "MessageType":"Contact", "Parameters": {"Contact.Id":3427181} } |
Event | Event.Id | { "AccountId":183112, "MessageType":"Event", "Parameters": { "Action":"Changed", "Event.Id": 12345 } } |
Event registration | Action: [Changed | Created | Deleted], EventToRegister.Id, RegistrationType.Id, Registration.Id, Registration.Status (absent for Action=Deleted) | { "AccountId":183112, "MessageType": "EventRegistration", "Parameters": { "Action":"Created", "EventToRegister.Id": "3141837", "RegistrationType.Id": "4827912", "Registration.Id": "26119327" } } |
Invoice | Document.Id Action: [Changed | Created | Deleted] | { "AccountId":183112, "MessageType":"Invoice", "Parameters": { "Document.Id":50022474, "Action":"Created" } } |
Logged email | Email.Id | { "AccountId":183112, "MessageType":"LoggedEmail", "Parameters": { "Action":"Created", "Email.Id":1234, "Email.EmailType":501, "Email.OriginType":0, "Email.OriginId":0 } } |
Membership | Action: [Enabled | Disabled | StatusChanged | RenewalDateChanged | LevelChanged ], Contact.Id, Membership.LevelId, Membership.Status [1 = Active, 2 = Lapsed, 3 = PendingRenewal, 20 = PendingNew, 30 = PendingUpgrade] | { "AccountId":183112, "MessageType":"Membership", "Parameters": { "Action":"Enabled", "Contact.Id":3427181, "Membership.LevelId": 123, "Membership.Status": 1 } } |
Membership level | Action: | { "AccountId":183112, "MessageType":"MembershipLevel", "Parameters": { "Action":"Created", "Level.Id":5678, "Level.MembershipFee":20, "Level.RenewalStrategy": 6 , "Level. YearsCount":2, "Level.Title":"My title", "Level.Type":"Bundle" } } |
Membership renewal | Contact.Id | { "AccountId":183112, "MessageType":"MembershipRenewed", "Parameters": { "Contact.Id":1234, "Membership.Level.Id":5678 } } |
Payment | Document.Id Action: [Changed | Created | Deleted] | { "AccountId":183112, "MessageType":"Payment", "Parameters": { "Document.Id":65785678, "Action":"Created" } } |
Refund | Document.Id Action: [Changed | Created | Deleted] | { "AccountId":183112, "MessageType":"Refund", "Parameters": { "Document.Id":123456778, "Action":"Created" } } |
Deleting a webhook
To delete an existing webhook, navigate to Apps > Integrations > Webhooks. Select the webhook to open it for editing, then click the Delete button at the top of the screen.