Skip to main content

Application Webhooks

Application webhooks are HTTP calls that Riseact sends to your endpoint when certain events occur across all the organizations that have installed your application.

Unlike organization webhooks, they are registered only once on your partner app: you don't have to configure them for each organization. Every call includes the domain of the organization that generated the event, so you can tell who it refers to.

Setting up a webhook

Application webhooks are managed from the Riseact partner portal, on the app's detail page.

  1. Open the partner portal and go to Apps.
  2. Select your application.
  3. Open the Webhooks tab.
  4. Click Add Webhook.
  5. Select the events you want to receive (see Available events) and enter the HTTPS URL of your endpoint, the one that will receive the POST calls.
  6. Save.

Every registered webhook appears in the tab with its subscribed events and URL. From there you can edit or delete it at any time.

Available events

EventDescription
supporter.createdA new supporter has been created
supporter.updatedA supporter has been updated
supporter.deletedA supporter has been deleted
checkout.createdA new checkout has been opened
checkout.updatedA checkout has been updated
checkout.paidA checkout has been completed with payment
checkout.closedA checkout has been closed
donation.createdA new donation has been created
donation.updatedA donation has been updated
donation.deletedA donation has been deleted
payment.createdA new payment has been recorded
payment.updatedA payment has been updated
campaign.createdA new campaign has been created
campaign.updatedA campaign has been updated
campaign.deletedA campaign has been deleted

Call delivery

Riseact sends a POST request with Content-Type: application/json to the registered URL. The payload is identical to that of the organization webhooks and contains:

  • organization — the domain of the organization that generated the event. It's the key field for routing the event: your app receives events from all installed organizations, so use it to tell which one it is.
  • event — the topic of the event (e.g. donation.created).
  • object — the object affected by the event.
  • idempotency_key — unique identifier of the call. The same key may arrive multiple times: handle it idempotently to deduplicate.

Example (donation.created):

{
"organization": "org-che-ha-installato-app",
"object": {
"id": 229,
"code": "#1000",
"state": "pending",
"amount": 10,
"frequency": 0,
"campaign": 29,
"supporter": 75835,
"payment_method": "MANUAL"
},
"event": "donation.created",
"idempotency_key": "b1e0c9a2-4f3d-4e2a-9c1b-6a7f8d0e2c34"
}

For the other object types (supporter, checkout, payment) see the complete examples on the organization webhooks page.

Operational notes:

  • The request timeout is 10 seconds. Respond immediately with 2xx and process the payload asynchronously if the work is heavy.
  • There is no signing mechanism (HMAC/secret). If you need to verify the origin, use a URL with a secret path or a token in the query string, and validate the idempotency_key.

Event log

The partner portal records every delivery attempt. In the Events tab of your app you'll find the list of calls sent, with the following for each one:

  • the organization it refers to;
  • the event and the payload sent;
  • the HTTP status of the response (or any connection error);
  • the response body from your endpoint.

If a delivery fails (unreachable endpoint, error response) you can retry it manually from the event detail. Use this screen to diagnose integration issues.

Difference from organization webhooks

Application webhooksOrganization webhooks
ScopeAll the orgs that install the appA single organization
Where they are registeredPartner portal, Webhooks tabOrganization admin, private app
Who uses themThird-party partner appsInternal automations and integrations
PayloadSame (includes organization)Same (includes organization)