Skip to content
Services Blog Changelog About Sign in Talk To The Founder
Home / Wiki / Workspace & Account

Set up a webhook to fire on Nynch events

You'll learn how to: Configure a Nynch webhook so external systems (your data warehouse, a Zap, a Make scenario, a custom backend) get notified when something happens in Nynch.

Time: 5 minutes.

Prereqs: You're an Owner or Admin. You have a destination URL ready to receive POST requests (an n8n / Make / Zapier hook, a custom endpoint, etc.).

Common use cases

  • Pipe new contacts into your data warehouse.
  • Trigger a Slack message when a deal moves to Won.
  • Sync a new contact into another tool (a marketing platform, your accounting system).
  • Notify your team channel on important workspace events.

For one-off integrations a Zap or Make scenario is simpler. Webhooks are best when you have a custom endpoint or a self-hosted automation.

Steps

  1. Open Settings (gear icon).
  2. Click the Integrations tab.
  3. Find the Webhooks section.
  4. Click + New Webhook.
  5. Fill in:
    • Name: a label for your own use ("Notify Slack on Won deals").
    • Destination URL: the URL Nynch should POST to (must be HTTPS).
    • Event type: pick from the list:
      • contact.created, contact.updated, contact.deleted
      • company.created, company.updated
      • deal.created, deal.stage_changed, deal.won, deal.lost
      • rhythm.contact_added, rhythm.due
      • email.received, email.sent
      • (and other event types per your workspace)
    • Optional filter: only fire for events matching specific conditions (e.g. only deal.won where value > 10000).
    • Secret (optional but recommended): a token Nynch includes in the signature header so your endpoint can verify the request really came from Nynch.
  6. Click Save.

The webhook is live immediately. Future matching events POST to your URL.

What gets POSTed

A JSON body like:

{
  "event": "deal.won",
  "workspace_id": "uuid",
  "timestamp": "2026-05-19T10:23:00Z",
  "data": {
    "deal_id": "uuid",
    "title": "Acme Q3 retainer",
    "value": 25000,
    "currency": "GBP",
    "owner_id": "uuid",
    "primary_contact_id": "uuid"
  }
}

The exact schema varies per event type. For nested entities, only IDs are included; full details require a follow-up API call.

If you set a secret, the request includes an X-Nynch-Signature header (HMAC of the body using your secret). Your endpoint should validate this.

Test a webhook

After saving, the webhook row has a Test action. Click it to fire a sample payload to your URL. Use this to confirm your endpoint is reachable and parses the payload correctly.

Disable or delete

The webhook row has more-actions:

  • Disable: stops firing without deleting the config. Re-enable any time.
  • Edit: change URL, filters, event type.
  • Delete: removes the webhook permanently.

Delivery retries

If your endpoint returns 5xx or times out, Nynch retries with exponential backoff for a few attempts. After that, the delivery is marked failed and not retried. The webhook's logs (visible from the webhook row) show every attempted delivery with status codes.

Persistent failure rate stops the webhook automatically after enough consecutive failures (typically 100+) to avoid hammering a broken endpoint.

If something goes wrong

  • Symptom: "+ New Webhook is greyed out." → Fix: You're not Owner / Admin, or your plan caps webhooks and you're at the limit.
  • Symptom: "Test send returns 200 but my system didn't receive it." → Fix: Check your endpoint's logs. Body parsing, signature validation, or routing might be silently dropping the request.
  • Symptom: "Webhook keeps failing with 4xx." → Fix: 4xx (especially 401, 403, 404) means your endpoint is rejecting Nynch's request. Common causes: wrong URL, missing auth, missing secret header. Check your endpoint config.
  • Symptom: "I want events for an entity type that's not listed." → Fix: Some event types are plan-gated. Contact support if you need a specific one.
  • Symptom: "Webhook stopped firing." → Fix: Check the webhook row for a "Disabled (too many failures)" status. Fix your endpoint, then re-enable.

Related: Settings, tab by tab.