• Adding a webhook
• Authorization settings
• Notification types
• Testing your webhook
• Status and log
• Deleting a webhook
Using webhooks, you can notify an external service when selected changes occur in your Wild Apricot account. For example, you could set up a webhook to notify a service when a new event is added to your Wild Apricot site, making it possible to automatically synchronize your Wild Apricot events with Google calendars or Outlook calendars.
Without webhooks, external systems have to make API requests over and over to check whether data has changed since the last API call.
As part of your webhook settings, you can choose which kinds of changes will trigger the sending of a notification.
Working with webhooks requires a certain degree of 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 Wild Apricot account, follow these steps:
- Click the Settings menu and select the Webhooks option (under Integration).
- On the Webhooks screen, click Add webhook.
- On the screen that appears, enter a title for your webhook, and paste the URL of the external service to be notified in the URL field.
The external service can be a ready-to-use service provided by third-parties such as Google, Slack, Make (formerly Integromat), or Zapier, or a custom service.
- Within the Authorization settings, you specify the type of authorization required for the external service, and enter any required authorization credentials. For more information, see Authorization settings below.
- Within the Notification type(s) section, choose the types of changes that will trigger notifications. For more information, see Notification types below.
- To test your webhook, click the Test webhook button within the Test your webhook section. Once 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.
- Once you are ready to enable your webhook, click the Allow webhook toggle so that it appears blue.
- Click the Save button to save your changes and enable your webhook.
Authorization settings
Within the Authorization settings section, you choose the type of authorization required for the external service, and enter any required authorization credentials.
The following authorization types are supported.
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
The user name and password you specify will be encoded within a basic authorization heading.
Notification types
Within the Notification type(s) section, you choose the kinds of changes that will trigger notifications to be sent to the external service.
The table below lists the changes that will trigger notifications for each notification type.
Type |
Triggers |
---|---|
Contact |
|
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:
|
Logged email |
|
Membership |
|
Membership level |
|
Membership renewal |
|
Payment | Any change to any payment, including:
|
Refund | Any change to any refund, including:
|
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" } } |
Testing your webhook
To test your webhook setup, before or after enabling it, click the Test webhook button within the Test your webhook section.
Once the test is complete, the test call status will be displayed. Possible values are OK or Fail.
You can then click the View details link to view the test call request and response.
Status and Log
Within the Status section, you can enable or disable your webhook, and download the log of the last webhook call.
The log will include both the request and the response of the last 1,000 calls.
Deleting a webhook
To delete an existing webhook, open it for editing, then click the Delete button at the top of the screen.