Use Inherit's webhook to trigger handoff creation from Zapier, Make (Integromat), or any automation tool — no code required. Connect to 6,000+ apps including HubSpot, Salesforce, Slack, Notion, and more.
Inherit exposes a single webhook endpoint that accepts an array of accounts and creates a full handoff — complete with AI-generated briefs — in one request. Point any automation tool at this URL and Inherit handles the rest.
Data flow
The webhook endpoint requires an Enterprise plan. Get your webhook key from Integrations settings.
Send a POST request to this URL with your accounts and Inherit will create the handoff and generate briefs automatically.
POST https://www.useinherit.com/api/webhooks/rep-change
Required headers
Content-Type: application/json x-inherit-signature: <hex(HMAC-SHA256(WEBHOOK_SECRET_KEY, raw_body))>
Compute the signature server-side using your WEBHOOK_SECRET_KEY (separate from webhook_key). Both are issued from Integrations settings. We never accept secrets in the URL or query string — those leak into proxy logs, CDN logs, and browser referrer headers.
Request body (JSON)
{
"webhook_key": "wk_your_user_webhook_key",
"handoff_name": "Q2 West Coast Transition",
"accounts": [
{
"account_name": "Acme Corp", // required
"industry": "SaaS", // optional
"annual_revenue": "1200000", // optional
"last_contact": "2024-11-15", // optional — ISO date
"website": "acme.com", // optional
"deal_stage": "Renewal", // optional
"key_contact": "Jane Smith, CFO" // optional
}
]
}Response (200 OK)
{
"handoff_id": "abc-123-...",
"handoff_url": "https://www.useinherit.com/dashboard/handoff/abc-123-...",
"brief_count": 12,
"results": [
{ "success": true, "account_name": "Acme Corp" },
{ "success": false, "account_name": "Bad Corp", "error": "..." }
]
}Create a new Zap
Configure your trigger
Add a Webhooks by Zapier action
Configure the webhook
https://www.useinherit.com/api/webhooks/rep-changejsonx-inherit-signature with a hex HMAC-SHA256 of the raw body, signed with your WEBHOOK_SECRET_KEY. Zapier's Code by Zapier step can compute the signature in two lines (see snippet below).Tip: insert a Code by Zapier (Run JavaScript) step before the webhook to build the signed payload, then pass output.body and output.signature into the POST step.
// Code by Zapier — Run JavaScript
const crypto = require('crypto')
const body = JSON.stringify({
webhook_key: inputData.webhook_key,
handoff_name: inputData.handoff_name,
accounts: JSON.parse(inputData.accounts_json),
})
const signature = crypto
.createHmac('sha256', inputData.webhook_secret_key)
.update(body)
.digest('hex')
return { body, signature }Map your CRM fields
{
"webhook_key": "wk_your_webhook_key_here",
"handoff_name": "{{deal_owner}} territory — {{today}}",
"accounts": [
{
"account_name": "{{company_name}}",
"annual_revenue": "{{arr}}",
"last_contact": "{{last_activity_date}}",
"deal_stage": "{{deal_stage}}",
"key_contact": "{{contact_name}}"
}
]
}Tip:For multi-account handoffs, use Zapier's Looping by Zapier action to collect multiple accounts before sending a single webhook request.
Create a new scenario
Add your trigger module
Add an HTTP module
https://www.useinherit.com/api/webhooks/rep-changePOSTRawapplication/jsonx-inherit-signature set to{{sha256(body; "hex"; webhook_secret_key)}}using Make's built-in sha256 HMAC function (Tools → Set variable to compute it once and reference it).Build the JSON body
{
"webhook_key": "wk_your_webhook_key_here",
"handoff_name": "{{1.ownerName}} territory handoff",
"accounts": [
{
"account_name": "{{1.companyName}}",
"annual_revenue": "{{1.arr}}",
"last_contact": "{{formatDate(1.lastActivityDate; 'YYYY-MM-DD')}}",
"deal_stage": "{{1.dealStage}}"
}
]
}Test and activate
Common workflows teams build with Inherit + Zapier or Make:
When a deal owner changes in HubSpot or Salesforce, instantly generate account briefs for the incoming rep.
Paste a territory list into a Google Sheet and trigger Inherit to generate briefs for every account automatically.
On a schedule before each QBR, pull key accounts from your CRM and generate fresh briefs for the review.
When a new CS rep is onboarded, automatically generate briefs for their assigned accounts from your CRM.
After Inherit generates your briefs, you can use the returned handoff_url to notify the incoming rep. Add additional actions in your Zap or Make scenario after the webhook call:
401 Unauthorized — Invalid or missing signature
The x-inherit-signature header did not match. Verify you are signing the exact raw request body (no whitespace differences, no re-serialization) with HMAC-SHA256 using your WEBHOOK_SECRET_KEY (not the webhook_key). Output must be lowercase hex.
404 No account found for this webhook_key
The webhook_key in the body does not match any account. Copy a fresh key from Integrations settings and confirm you are sending it inside the JSON body, not as a header or URL parameter.
402 Payment Required
Webhooks require an Enterprise plan. Upgrade from your billing settings to enable this feature.
400 Bad Request
The request body is missing required fields. Ensure accounts is a non-empty array and each account has an account_name.
Briefs are generating but look incomplete
Pass as many optional fields as possible (industry, annual_revenue, deal_stage, last_contact). More context = better briefs.
Zapier times out before getting a response
Brief generation takes 1–3 seconds per account. For large batches (50+ accounts), set Zapier's request timeout to 120 seconds or use Make which has higher timeout defaults.
For custom integrations, multi-step workflows, or higher volume automation, use the Inherit REST API directly. The API gives you full control over handoff creation, brief generation, CRM write-back, and more.
View REST API docs →Get your webhook key from the integrations dashboard and start connecting in minutes.
Get your webhook key →We use cookies to improve Inherit
We use a small set of analytics cookies (PostHog) to understand which features get used. Strictly necessary cookies (login session, security) are always on. Privacy policy.