Zapier Integration
Wire ABM.dev into the 7,000+ apps Zapier already talks to. Enrichment as a step in any workflow you already run.
In this guide
- Install the ABM.dev Zapier app via invite link
- Connect your account with an ABM.dev API key
- Pick triggers, actions and searches for your Zap
- Build a workflow end to end
Prerequisites
- An ABM.dev account on any paid plan
- A Zapier account (Free works for two-step Zaps; Starter or above for filters and multi-step)
- An ABM.dev API key from Settings → API Keys
Install the ABM.dev Zapier app
The ABM.dev app is currently invite-only while we finish certification with Zapier. Open the invite link below in the same browser session as your Zapier account.
Accept the Zapier inviteInvite-only for now
Connect with your API key
Zapier will prompt for an API key the first time you add an ABM.dev step.
- 1.Open Settings → API Keys in the ABM.dev dashboard
- 2.Create a key labelled something like
zapier-production - 3.Copy the key and paste it into Zapier when prompted
- 4.Zapier verifies the key against
GET /api/v2/accountbefore saving the connection
One key per environment
What you can wire up
Triggers
Polling, 5 minThings that happen in ABM.dev and kick off a Zap somewhere else.
| Label | Key | What it fires on |
|---|---|---|
| New Enrichment Completed | new_enrichment | An enrichment finishes for a person or company in your workspace |
| New Contact Created | new_contact | A contact is added to your ABM.dev CRM (directly or via a connected platform) |
| Campaign Status Changed | campaign_status_changed | A campaign moves between draft, running, paused, or completed |
Actions
WriteThings Zapier does to ABM.dev in response to something somewhere else.
| Label | Key | What it does |
|---|---|---|
| Create Enrichment | create_enrichment | Submit a person or company to the enrichment pipeline. Returns an enrichment ID immediately; the New Enrichment Completed trigger fires when it finishes. |
| Create Contact | create_contact | Create a contact in your ABM.dev CRM. Pick the destination platform (HubSpot today, more later) on the step itself. |
Searches
ReadLookups Zapier runs mid-Zap to find existing records.
| Label | Key | What it does |
|---|---|---|
| Find Contact | find_contact | Look up a contact by email. Pairs neatly with Find or Create at the Zap level. |
Example workflows
Three Zaps that earn their keep on day one.
Enrich every new HubSpot contact, automatically
- 01Trigger — HubSpot: New Contact
- 02Action — ABM.dev: Create Enrichment (type:
person, pass the HubSpot email + first/last name + company) - 03That's it. The HubSpot writeback happens server-side once enrichment finishes — no extra step needed.
Stream finished enrichments to a Google Sheet
- 01Trigger — ABM.dev: New Enrichment Completed
- 02Filter — only continue if
statusiscompleted - 03Action — Google Sheets: Create Spreadsheet Row. Map entity name, company, email, LinkedIn URL, created_at.
Useful when ops wants a running ledger before anyone trusts the API enough to read from it directly.
Apollo list updates → enrich → CRM
- 01Trigger — Apollo: New Contact Added to List
- 02Search — ABM.dev: Find Contact by email. Set Find or Create so a missing contact is created on the fly via Create Contact.
- 03Action — ABM.dev: Create Enrichment against the contact you just resolved.
- 04Action — your CRM: write the enriched fields back. (Or skip this — if the contact platform is HubSpot, writeback runs automatically.)
Or skip Zapier and call the API directly
Every Zapier action is a thin wrapper over the public API. If you'd rather wire this into your own code, the enrichment endpoint looks like this:
curl -X POST https://api.abm.dev/api/v2/enrichments \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"targets": [
{
"type": "person",
"email": "[email protected]",
"first_name": "Ada",
"last_name": "Lovelace",
"company": "Analytical Engines Ltd"
}
]
}'Troubleshooting
Connection test fails
- - Re-copy the key from Settings → API Keys. Leading/trailing spaces are the usual culprit.
- - Confirm the key isn't revoked. Revoked keys 401 on
/api/v2/accountand Zapier shows the auth as broken. - - Check your workspace still has at least one active subscription — keys for cancelled workspaces are rejected with a 402.
Trigger never fires
- - Triggers poll every 5 minutes on paid Zapier plans, 15 on Free. Be patient on the first run.
- - Use Zapier's Replay Zap if the trigger fired but your downstream action errored — it re-runs without re-polling ABM.dev.
- - The first sync only returns events created after the connection was set up. Historic data isn't backfilled.
Action returns 429
- - You've hit the per-key rate limit. Add a Delay step before the ABM.dev action, or split into multiple keys.
- - For Apollo or Clay-style bulk imports, use the platform's own bulk export → upload pattern rather than fanning out one Zap per row.