Webhooks
Send every new lead as JSON to a URL of your own: your app, Make, n8n or any tool that takes a webhook.
Authenticated with ?privateKey=YOUR_KEY (see Authentication).
| POST | /admin/automations | Create a new automation |
| GET | /admin/automations | Get all automations for a website |
| PATCH | /admin/automations/{id} | Enable or disable an automation |
| POST | /v3/webhooks/test | Test a webhook |
| GET | /v3/automations/{automationId}/runs | Get an automation's runs |
/admin/automationscurl -X POST "https://rest-dash.revealid.xyz/admin/automations?privateKey=YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "Docs example: trigger-webhook", "isActive": true, "website": "64b7f0a1c2d3e4f5a6b7c8d9", "when": "new-lead-is-identified", "then": "trigger-webhook", "interval": "immediately", "actions": { "sentToWebhook": { "url": "https://webhook.site/your-unique-id", "whenToPush": "every-time" } }}'What each field accepts
| Field | Type | Limits and format | Accepted values |
|---|---|---|---|
| name* | string | — | any |
| isActive* | boolean | — | any |
| website* | string | — | any |
| filter | object | — | any |
| trigger | string | default "only-on-first-visit" | only-on-first-visiton-every-visitnone |
| when* | string | — | Show all 7 valuesnew-lead-is-identifiednew-intent-data-triggerednew-prospector-leadnew-web-scraping-signalnew-scout-leadnew-linkedin-engagementnew-tag-added-to-lead |
| then* | string | — | Show all 16 valuessend-to-slacksend-to-hubspotsend-to-pipedrivesend-to-salesforcesend-to-zohosend-to-gohighleveltrigger-webhooksend-to-zapiersend-to-claysend-to-emailCampaignsend-to-linkedinCampaignsend-email-alertsend-csv-on-emailsend-to-googleAdsCampaignsend-to-linkedinAdsAudiencesend-to-metaAdsAudience |
| interval | string | default "daily" | immediatelyafter-sessiondailyweeklymonthly |
| contactPersona | object | — | any |
| contactPersona.roles | string[] | — | any |
| contactPersona.excludedRoles | string[] | — | any |
| emailVerification | object | — | any |
| emailVerification.allowOnlyValidEmails | boolean | default false | any |
| emailVerification.allowCatchAllEmails | boolean | default false | any |
| emailVerification.allowGuessedEmails | boolean | default true | any |
| emailVerification.allowWithoutEmails | boolean | default false | any |
| contactSelectionStrategy | string | default "exact-job-titles" | exact-job-titlesflexible-job-titlesflexible-find-at-least-one-job-titles |
| maxContactsToSend | integer | min 1 · whole number · default 5 | any |
| actions | object | — | any |
| actions.sentToSlack | object | — | any |
| actions.sentToSlack.sendMessagesTo | string | — | any |
| actions.sentToSlack.messageTemplate | string | — | any |
| actions.sentToSlack.howManyToAdd | integer | whole number | any |
| actions.sentToWebhook | object | — | any |
| actions.sentToWebhook.url | string | — | any |
| actions.sentToWebhook.whenToPush | string | — | every-timeonly-with-suggested-contacts |
| actions.sendToClay | object | — | any |
| actions.sendToClay.url | string | — | any |
| actions.sendToClay.whenToPush | string | — | every-timeonly-with-suggested-contacts |
| actions.sentToEmailCampaign | object | — | any |
| actions.sentToEmailCampaign.emailCampaign | string | — | any |
| actions.sentToEmailCampaign.emailAccounts | string[] | — | any |
| actions.sentToHubspot | object | — | any |
| actions.sentToHubspot.action | string | — | create-a-contact |
| actions.sentToHubspot.assignContactsTo | string | — | any |
| actions.sentToHubspot.createDeal | boolean | — | any |
| actions.sentToHubspot.pipelineId | string | — | any |
| actions.sentToHubspot.dealStageId | string | — | any |
| actions.sentToHubspot.dealAmount | number | — | any |
| actions.sentToPipedrive | object | — | any |
| actions.sentToPipedrive.assignContactsTo | string | — | any |
| actions.sentToSalesforce | object | — | any |
| actions.sentToSalesforce.assignContactsTo | string | — | any |
| actions.sentToZoho | object | — | any |
| actions.sentToZoho.assignContactsTo | string | — | any |
| actions.sentToGoHighLevel | object | — | any |
| actions.sentToGoHighLevel.assignContactsTo | string | — | any |
| actions.sentToGoHighLevel.createOpportunity | boolean | — | any |
| actions.sentToGoHighLevel.pipelineId | string | — | any |
| actions.sentToGoHighLevel.pipelineStageId | string | — | any |
| actions.sentToGoHighLevel.opportunityStatus | string | — | openwonlostabandoned |
| actions.sentToGoHighLevel.tags | string[] | — | any |
Use case: Check your endpoint first
POST /v3/webhooks/test with websiteId and webhook set to your URL sends a sample lead, shaped like the ones automations send and signed with your website's secret if it has one, and returns what your endpoint answered (status and data). The URL must be a public http(s) address; a private or local one answers 400. When the test succeeds, leads whose webhook delivery had failed are queued to be sent again.
Use case: Only leads with a person attached
Set whenToPush to only-with-suggested-contacts so your endpoint only receives leads that come with the identified person; every-time sends every matching lead.
Use case: Check what was delivered
GET /v3/automations/{automationId}/runs?websiteId=… lists the automation's runs, newest first, with the lead, the time and whether your endpoint accepted it. GET /admin/automations?websiteId=… shows errorMessage when the last run failed.