Skip to main content
Webhooks push events from Juiced into the rest of your stack, like CRMs, data warehouses, chat alerts, and internal dashboards. When a lead is assigned, a transaction posts, or a customer signs up, Juiced sends an HTTP request to your URL with the payload you shaped. This guide walks through one from start to finish. For the full list of events, payload fields, and retry behavior, see the Webhooks feature page.

Prerequisites

  • Permission to manage webhooks in your workspace (admins have it).
  • A destination URL on the public internet. If you don’t have a real one yet, webhook.site gives you a throwaway URL to test against.
  • Any credentials your receiver requires (a username and password, a bearer token, or custom headers).

1. Open the Webhooks page

Open Webhooks under Integrations in the sidebar. You’ll see every webhook you’ve created, with its Event, URL, and whether it’s Active.
Webhooks list with three webhooks showing their event, URL, and active status, and a New webhook buttonWebhooks list with three webhooks showing their event, URL, and active status, and a New webhook button
Click New webhook.

2. Pick the event and URL

Start in the Webhook section. Here are some common picks.
  • Lead Assigned pushes sold leads into your CRM.
  • Lead Not Assigned pings your team when a lead finishes distribution unsold.
  • Transaction Updated mirrors wallet activity into your accounting tools.
  • Customer Created starts an onboarding sequence for each new customer.
Need the same event in two places, with different payloads? Create two webhooks. Each one fires on its own.

3. Check the advanced settings

Advanced settings is collapsed, with a summary of the current choices (for example “No auth”, “POST”, “JSON”, ”10s timeout”, “No headers”). The defaults suit most CRMs. Expand it if your receiver needs something different.
Juiced doesn’t sign webhook requests. If your receiver needs to verify where a request came from, use Basic Auth, a bearer token, or a secret header it can check.

4. Shape the payload

In the Payload section, choose one of two options.
  • Default payload sends every field available for the event in a standard shape. For lead events, that includes the lead’s deliverable fields, and new fields are added automatically.
  • Custom payload lets you choose fields, rename keys, add static values, or paste your own JSON shape.
New webhook form with Event set to Customer Created, a URL field, collapsed Advanced settings, and Default payload selected over Custom payloadNew webhook form with Event set to Customer Created, a URL field, collapsed Advanced settings, and Default payload selected over Custom payload
With a custom payload, each row has a Key and a value. Use dot notation in the key, like contact.email, to nest it. The value can be static text, a field you insert from the picker, or a mix of both, and fields can take transformers to reformat them. Add row adds another. On lead events, Add all lead fields adds a single row that sends every deliverable field. Two shortcuts save typing.
  • Load default mapping replaces the rows with the default payload, so you can delete or rename from there.
  • Paste JSON turns a sample payload, such as one from your receiver’s docs, into rows. Values that match an available field, like {{ lead.email }}, become linked fields.
When in doubt, start with Load default mapping. You get every field for the event, then trim what your receiver doesn’t need.
See Available fields for what each event can include.

5. Choose the payload version

The Payload version section decides the shape of every request, with a card for Legacy and one for v1. A new webhook starts on v1, which wraps your payload in a fixed envelope. Here’s a trimmed Customer Created request.
The payload you shaped in step 4 becomes data, and the envelope tells your receiver what happened (type), when it happened (created_at), and which event it is (id, unique to each event). Pick Legacy only if your receiver already expects the original shape, where your mapping shapes the whole body. The preview under the cards shows what your endpoint will receive, headers included. Its id and created_at are samples, since every event gets its own. If your mapping uses the {{ event }} or {{ tenant.* }} fields, an amber note names them, because they render empty on v1. Load default mapping adds event, tenant.id, and tenant.name rows, so delete those on a v1 webhook and use type and tenant_id from the envelope instead.
Have your receiver store each event’s id and skip any it has already processed, so an event that arrives twice is only handled once.
For everything v1 sends and how to switch an existing webhook, see Payload versions.

6. Create and test

Click Create & continue to testing. The webhook is active right away, and its edit page opens with a Testing section. Choose what to send.
  • Test with a real lead searches by ID, name, email, or phone and sends exactly what that lead would produce.
  • Generate sample data fills every mapped field with realistic but fake values.
  • Add test data manually lets you type in the values yourself.
Edit page for a Lead Assigned webhook with Delete and Overview buttons, the webhook settings and payload, and a Testing section offering Test with a real lead, Generate sample data, and Add test data manuallyEdit page for a Lead Assigned webhook with Delete and Overview buttons, the webhook settings and payload, and a Testing section offering Test with a real lead, Generate sample data, and Add test data manually
Click Run Webhook Test. The Request (method, URL, headers, and body) and the Response (status code, headers, and body) appear below.
  • A 2xx means you’re wired up.
  • A 4xx means you should check the URL and credentials.
  • A 5xx means the receiver had a problem, so check its logs.
  • A Timeout means the receiver is slow, so raise the Timeout in advanced settings.
Tests go to your real endpoint. Make sure your receiver can handle a test record, or point the webhook at a staging receiver while you test.
If you change anything on the edit page, click Save changes on the save bar.

7. Verify with a real event

Trigger the event for real and watch your receiver. Then click Overview on the edit page, or the webhook’s row in the list, to open its deliveries.
Deliveries page for an active Lead Assigned webhook with delivery stats, a replay panel with the last bulk replay and a Bulk replay button, a Live deliveries list with response codes and durations, and the webhook's endpoint, method, format, and triggerDeliveries page for an active Lead Assigned webhook with delivery stats, a replay panel with the last bulk replay and a Bulk replay button, a Live deliveries list with response codes and durations, and the webhook's endpoint, method, format, and trigger
The stats across the top show Total deliveries, Success rate, Failed, Average duration, and Last delivery. Real deliveries are under Live, and your test sends are under Tests. Click any delivery to see the request Juiced sent and the response it got back. If nothing arrives, work through these checks.
  • Check the webhook is Active, not Paused.
  • Check the URL is reachable from the public internet.
  • Open the failed delivery and read the response. Juiced retries server errors (5xx) and connections that fail before the request is sent, up to 3 attempts in total, but not client errors (4xx). Fix the cause, then send it again.

Managing webhooks over time

  • Pause or resume with the pause button on the webhook’s row, or with Pause webhook (or Enable webhook) on its deliveries page. The settings stay put while it’s paused.
  • Edit with the edit button on the row, or with Edit on the deliveries page. Payload changes apply to the next delivery.
  • Switch payload version in the Payload version section of the edit page. The preview shows the current payload next to the one after save, so check your receiver can read the new shape before you click Save changes.
  • Replay a delivery by opening it and clicking Replay, or replay every failure from an outage at once with Bulk replay above the history. On v1, the original event goes out again with the same id. See Replaying deliveries for how each kind works.
  • Delete with the delete button on the row, or with Delete on the edit page.

Customer webhooks

Customer webhooks are a separate flow that sends each lead assigned to one customer to that customer’s own endpoint. You can set one up from the customer’s Webhooks tab (see Customers), and customers can manage their own in their portal (see Webhooks in the customer portal). The form, payload options, testing, and deliveries work the same way as above.

What happens next

With webhooks flowing, they cover a few common jobs.
  • For CRM sync, Lead Assigned webhooks are the usual way to get sold leads into Salesforce, HubSpot, or your own CRM.
  • For finance, Transaction Updated webhooks mirror wallet activity into your accounting tools or data warehouse.
  • For alerts, send Lead Not Assigned to a chat bot so your team hears when leads go unsold.
Every event that matters, squeezed straight into the tools you already use.