Webhooks

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:

  1. Click the Settings menu and select the Webhooks option (under Integration).
  2. On the Webhooks screen, click Add webhook.  
  3. 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.
  4. 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.
  5. Within the Notification type(s) section, choose the types of changes that will trigger notifications. For more information, see Notification types below.
  6. 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.
  7. Once you are ready to enable your webhook, click the Allow webhook toggle so that it appears blue.  
  8. 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
  • Any change to any tab of the contact details for any contact
  • Any change to common field settings
Event
Any change to event settings except:
  • Changes to registration form
  • Changes to registration types
  • Changes to event email settings or templates
Event registration
Any change to event registration details for any registrant, including:
  • New registration
  • Canceled registration
  • RSVP response
Invoice
Any change to any invoice, including:
  • New invoice
  • Modified invoice
  • Deleted invoice
  • Voided invoice
Logged email
  • An email is added to the email log
Membership
  • Any change to the membership settings for any member
  • Any change to membership field settings
  • Changes to membership level settings will not trigger notification
Membership level
  • Any change to settings for an existing membership level
  • New level created
  • Existing level deleted
Membership renewal
  • Existing membership renewed
Payment Any change to any payment, including:
  • New payment
  • Adjusted payment
  • Canceled payment
Refund Any change to any refund, including:
  • New refund
  • Adjusted refund
  • Canceled refund

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
Action: [Changed | Created | Deleted]


  
{
 "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
Email.EmailType
[MemberApplication_ActivationEmail = 101,
MemberApplication_InitiationEmail = 104,
MemberApplication_BundleMember_
ActivationEmail = 151,
MemberApplication_BundleAdmin_
ActivationEmail = 152,
MemberRenewal_FreeRenewal = 351,
MemberRenewal_RenewalPending = 352,
MemberRenewal_RenewalConfirmed = 353,
MemberRenewal_RenewalCanceledByMember = 355,
MemberRenewal_MemberRenewal_
RecurringRenewalFailed = 356,
MemberRenewal_Online_PaymentSuccessfull = 357,
MemberRenewal_AdvanceRenewalReminder1 = 300,
MemberRenewal_AdvanceRenewalReminder2 = 301,
MemberRenewal_RenewalDateNotice = 302,
MemberRenewal_GracePeriod = 303,
MemberRenewal_Lapsed = 304,
MemberLevelChange_InitiationEmail = 380,
MemberLevelChange_ActivationEmail = 381,
Donation_Confirmation = 400,
EventRegistration_OfflinePayment_
FreeLevelConfirmationEmail = 251,
EventRegistration_OfflinePayment_
PaidLevelConfirmationEmail = 252,
EventRegistration_OfflinePayment_
PaidLevelPendingEmail = 253,
EventRegistration_NewWaitlistEntryEmail = 254,
EventRegistration_CanceledEmail = 255,
EventRegistration_OnlinePayment_
PaidLevelConfirmationEmail = 202,
EventRegistration_Reminder1 = 260,
EventRegistration_Reminder2 = 261,
EventRegistration_Reminder3 = 262,
EventRegistration_Announcement1 = 263,
EventRegistration_Announcement2 = 264,
EventRegistration_Announcement3 = 265,
EmailBlast_Members = 501,
EmailBlast_Registrations = 503,
EmailBlast_WaitlistPersons = 504,
Finances_Invoice = 601,
Finances_PaymentReceipt = 602,
Finances_DonationReceipt = 603,
Finances_RefundNote = 604,
Contact_Password = 449,
SubscriptionForm_Confirmation = 450,
Public_MemberToMemberEmail = 451,
Poll_Announcement_Notification = 800,
ForgottenPasswordRequest = 1000,
ForumNotification = 1001,
ForumTopicNotification = 1002,
OnlineStore_Order = 1100]
Email.OriginType
[System = 0,
Contact = 1,
MembershipLevel = 2,
Event = 3,
Donation = 4,
WebPage = 5,
ForumTopicSubscription = 6,
FinancialDocument = 7,
NewPasswordEmail = 8,
OnlineStoreOrder = 9,
PollStartAnnouncement = 10]
Email.OriginId
Action [Created]

{
"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:
[Created | Disabled | PriceChanged | RenewalStrategyChanged | TitleChanged ]
Level.Id,
Level.MembershipFee,
Level.RenewalStrategy [Never = 1 | Monthly = 3 | Quarterly = 4 | TwiceAYear = 5 | Yearly = 6],
Level.Title,
Level.Type [Bundle = 1, Individual = 2]

{
"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
Membership.Level.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.

Search: WildApricot.com 

About results ( seconds) Sort by: 
Sorry, an error occured when performing search.
Powered by Zendesk