HubSpot
Push leads to HubSpot as contacts linked to their company, owned by the person you pick, and optionally a deal for each.
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 |
| GET | /v3/crm/owners | List CRM owners |
| POST | /v3/crm/push | Push contact to CRM |
| GET | /v3/crm/{crm}/mappings | Get CRM field mappings |
| PUT | /v3/crm/{crm}/mappings | Set CRM field mappings |
POST
/admin/automationsTry:
Request body
NameName of the automation
Is ActiveWhether automation is active
WebsiteWebsite ID this automation belongs to
FilterFilter criteria for leads
Trigger
WhenEvent that triggers the automation
ThenAction to perform
Interval
Contact Persona
Roles
Excluded Roles
Email Verification
Allow Only Valid Emails
Allow Catch All Emails
Allow Guessed Emails
Allow Without Emails
Contact Selection Strategy
Max Contacts To SendMost contacts sent per company each time the automation runs.
ActionsAction-specific configurations
Sent To Slack
Send Messages ToSlack channel, e.g.
Message TemplateMessage with merge fields such as {{lead.company.name}} and {{lead.person.firstName}}; empty uses the saved template
How Many To Add
Sent To Webhook
Url
When To Push
Send To Clay
UrlThe webhook URL of your Clay table
When To Push
Sent To Email Campaign
Email CampaignCampaign ID from GET /admin/email-campaigns
Email Accounts
Sent To HubspotEach lead is pushed as a contact linked to its company (found by domain, or created), owned by assignContactsTo. With createDeal, a deal is also created in pipelineId at dealStageId, linked to the contact and company; a lead that already has an open deal in that pipeline is not given a second one.
ActionKept for older callers; every push creates the contact and its company. Deals are set with createDeal.
Assign Contacts ToOwner ID from GET /v3/crm/owners. Also owns the deal.
Create DealAlso create a deal named "<Company> — Website visitor". Needs pipelineId and dealStageId.
Pipeline IdDeal pipeline ID from GET /v3/crm/pipelines?crm=hubspot
Deal Stage IdStage ID of that pipeline (its stages[].id) the deal starts in
Deal AmountOptional amount set on every deal
Sent To Pipedrive
Assign Contacts To
Sent To Salesforce
Assign Contacts To
Sent To Zoho
Assign Contacts To
Sent To Go High Level
Assign Contacts To
Create Opportunity
Pipeline Id
Pipeline Stage Id
Opportunity Status
Tags
curl -X POST "https://rest-dash.revealid.xyz/admin/automations?privateKey=YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "Docs example: send-to-hubspot", "isActive": true, "website": "64b7f0a1c2d3e4f5a6b7c8d9", "when": "new-lead-is-identified", "then": "send-to-hubspot", "interval": "immediately", "actions": { "sentToHubspot": { "assignContactsTo": "OWNER_ID" } }}'Response
Press Send request to try it with sample data.
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: Pick the owner
GET /v3/crm/owners?crm=hubspot lists the users of your HubSpot; use one's id as assignContactsTo.
Use case: Also create a deal
Add createDeal: true, a pipelineId and a dealStageId to sentToHubspot (and dealAmount if you want one). GET /v3/crm/pipelines?crm=hubspot lists your deal pipelines with the ids of their stages. Each lead then also gets a deal in that stage, linked to its contact and company; a lead with an open deal in that pipeline isn't given a second one.
"sentToHubspot": {
"assignContactsTo": "OWNER_ID",
"createDeal": true,
"pipelineId": "default",
"dealStageId": "appointmentscheduled",
"dealAmount": 5000
}Use case: Push one lead now
POST /v3/crm/push with crm: "hubspot" and a leadId sends that lead right away, without an automation.