Skip to content

Webhooks

A webhook tells your system when something happens in Karani. You give Karani a URL and an event; when that event fires, Karani POSTs the data to your URL.

  1. Go to karani.co/groups/services/webhooks, or find Webhooks on the Integrations page.

    The Karani webhooks page listing configured webhooks with their URL and event, and a form to add another
    Your webhooks, and the form to add one.
  2. Add the URL to send to.

  3. Choose the event that triggers it.

  4. Save.

From then on, Karani watches for that event and posts the record to your URL when it fires.

Event Fires when
contacts.create A contact is created
contacts.update A contact is updated
gifts.create A gift is created
gifts.update A gift is updated
pledges.create A pledge is created
pledges.update A pledge is updated
tasks.create A task is created
tasks.update A task is updated

The payload is the affected record.

Webhooks are the natural pairing for Zapier — a Karani event becomes a Zap trigger, and from there you can act in any of Zapier’s apps without writing a server.

Common ones:

  • New gift → post to a Slack channel
  • New contact → append a row to a Google Sheet
  • Updated pledge → notify your team

A few things worth getting right:

Respond quickly. Return a 2xx immediately and do the work asynchronously. A slow endpoint is a fragile one.

Be idempotent. Assume you might receive the same event twice. Key off the record ID so a repeat delivery doesn’t create a duplicate.

Expect creates you caused. If your integration writes to Karani via the API, your own writes will fire webhooks back at you. Guard against the loop.

Point a webhook at a request-inspection service and trigger the event by creating a record in Karani. You’ll see the exact payload, which is faster than inferring it.

The webhooks page lists what you’ve configured. Remove one to stop delivery.

  • Polling the API — simpler, less timely. Fine for a nightly job.
  • Exports — simplest of all, when you just need a periodic file.