Skip to content

API keys by tool

Which key each supported tool needs, where to create it, the scopes or plan it requires, and what its API cannot give us.

For: Admins connecting a tool

Every tool connects with an API key or token that you create inside that tool. There is no OAuth pop-up and nothing to install. This page lists the exact key for each of the tools you can connect.

How pasting a key works

  1. Sending tools, the CRM and dialers are added in Settings → Connections. Enrichment providers are added in Settings → Enrichment. Both need the admin role.
  2. Paste the key. Spaces, line breaks and a pair of surrounding quotes are removed for you.
  3. The key is tested against the tool straight away. You see Key works with a few facts read from the account, or Key not accepted with the reason the tool gave.
  4. Click Save. The server tests the key once more and stores it encrypted. It is never shown again.

Note: Some tools need a second value next to the key, such as an account email or a client ID. Those fields appear in the form when you pick the tool. Checks are limited to 20 a minute per person.

The Connect Instantly form: a button to open the Instantly API settings, the scopes the key needs, a label field, the API key field, and Save and Check key buttons

The connect form for Instantly: where to find the key, what it needs, and the key field. Save unlocks once the key is checked. Demo data.

Give each key only what it needs

OutboundManager only reads from your tools. The one exception is a reply that a person on your team writes and sends from the reply queue. So most keys can be read-only:

ToolMinimum accessAdd only if you want
Instantlyall:read, or read scopes for workspaces, campaigns, accounts, leads and emailsemails:create to answer replies from the reply queue
HubSpotcrm.objects.deals.read, crm.objects.contacts.read, crm.objects.companies.read, crm.objects.owners.read, crm.schemas.deals.readcrm.objects.deals.write and crm.schemas.deals.write for write-back
HeyReachA workspace API key (not an organization key)
DialpadA company-level key with the calls:list scope
RingCentralA private JWT app with ReadAccounts and ReadCallLog
ZoomInfoA client credentials app with the api:data:contact scope

The other tools issue one key with no scopes to choose. More on handling keys safely: Security best practices.

Every tool, step by step

The steps and notes below are the same ones shown on each tool's integration page and inside the app.

Email

InstantlyEmail
  1. In Instantly, go to Settings → Integrations → API Keys and create an API key (API v2).
  2. Give the key read access: the all:read scope, or read scopes for workspaces, campaigns, accounts, leads and emails. To answer replies from OutboundManager, also add emails:create (or all:create).
  3. In OutboundManager, an admin opens Settings → Connections and clicks Add connection.
  4. Pick Instantly. Paste the API key. It is checked against the tool automatically; click Save once it shows Key works. The key is stored encrypted.
  5. Open Settings → Reps & senders and give each sender a rep. Suggested matches by email are offered; re-mapping later moves the history with the sender.

Good to know

  • API keys are an Instantly plan feature. If you cannot create one, check your Instantly plan.
  • Instantly limits its email endpoint to 20 requests a minute, so a large first backfill is spread over several sync runs.
  • Opens and clicks are not imported. Reply rates are per send, counted from real replies.
  • Replies sent from OutboundManager are stored as replies, never counted as outreach.
SmartleadEmail
  1. In Smartlead, open Settings and copy your API key.
  2. In OutboundManager, an admin opens Settings → Connections and clicks Add connection.
  3. Pick Smartlead. Paste the API key. It is checked against the tool automatically; click Save once it shows Key works. The key is stored encrypted.
  4. Open Settings → Reps & senders and give each sender a rep. Suggested matches by email are offered; re-mapping later moves the history with the sender.

Good to know

  • Smartlead allows 60 API requests a minute per plan, so OutboundManager paces itself and a large account can take a few sync runs to backfill.
  • The sending mailbox of a send is only known when the campaign uses exactly one mailbox; otherwise the campaign owner gets the credit.
  • Opens and clicks are not imported.
WoodpeckerEmail
  1. Make sure the API key add-on is active on your Woodpecker account. Without it, Woodpecker refuses API access.
  2. In Woodpecker, go to Marketplace → Integrations → API keys and create a key.
  3. In OutboundManager, an admin opens Settings → Connections and clicks Add connection.
  4. Pick Woodpecker. Paste the API key. It is checked against the tool automatically; click Save once it shows Key works. The key is stored encrypted.
  5. Open Settings → Reps & senders and give each sender a rep. Suggested matches by email are offered; re-mapping later moves the history with the sender.

Good to know

  • Woodpecker's API has no per-email send events, only each prospect's last contact time. Each sync records every prospect's latest step, which catches each step as it goes out unless two reach the same prospect between syncs; a backfill only sees each prospect's latest step.
  • A prospect contacted in two or more synced campaigns cannot be attributed to one of them and is skipped.
  • The inbox only covers mailboxes connected by the key's owner. LinkedIn steps of multichannel campaigns are not synced.
  • Woodpecker processes one API request at a time per account, so syncs are slower on large accounts.
LemlistEmail
  1. In lemlist, open Settings → Integrations and generate an API key in the API section. The key acts as the user who created it.
  2. In OutboundManager, an admin opens Settings → Connections and clicks Add connection.
  3. Pick Lemlist. Paste the API key. It is checked against the tool automatically; click Save once it shows Key works. The key is stored encrypted.
  4. Open Settings → Reps & senders and give each sender a rep. Suggested matches by email are offered; re-mapping later moves the history with the sender.

Good to know

  • Opens, clicks, visits, likes, follows, WhatsApp, SMS, calls and manual tasks are not imported. Aggregate campaign stats are never turned into activity.
  • When an activity carries no sender, the campaign owner gets the credit.
  • LinkedIn replies can only be answered for campaign leads, because lemlist only messages leads.
  • lemlist allows 20 requests every 2 seconds per key, so a large first backfill can take several sync runs.

LinkedIn

HeyReachLinkedIn
  1. In HeyReach, open the workspace you want to report on and go to Settings → Integrations → API. Create a workspace API key.
  2. Use a workspace key, not an organization key. Organization keys cannot read campaign data, and the connection test says so.
  3. In OutboundManager, an admin opens Settings → Connections and clicks Add connection.
  4. Pick HeyReach. Paste the workspace API key. It is checked against the tool automatically; click Save once it shows Key works. The key is stored encrypted.
  5. Open Settings → Reps & senders and give each sender a rep. Suggested matches by email are offered; re-mapping later moves the history with the sender.

Good to know

  • HeyReach only exposes each lead's current connection state, not the time of each invite or acceptance. OutboundManager fixes an approximate time the first time it sees the event and never moves it.
  • Profile views, likes, follows and the InMail versus message split are only available as totals in HeyReach and are not synced.
  • Leads removed from a campaign and deleted conversations are not seen.
  • The API key is shared across the workspace at 300 requests a minute.

CRM

HubSpotCRM
  1. In HubSpot, a super admin creates a private app (Settings → Integrations → Private Apps; newer accounts list private apps under Development → Legacy apps).
  2. Give it these scopes: crm.objects.deals.read, crm.objects.contacts.read, crm.objects.companies.read, crm.objects.owners.read and crm.schemas.deals.read. For write-back, also crm.objects.deals.write and crm.schemas.deals.write.
  3. Copy the private app's access token.
  4. In OutboundManager, an admin opens Settings → Connections and clicks Add connection.
  5. Pick HubSpot. Paste the access token. It is checked against the tool automatically; click Save once it shows Key works. The key is stored encrypted.
  6. Map HubSpot owners to reps in Settings → Reps & senders. To write attribution back to deals, turn on write-back on the HubSpot connection; it is off until you do.

Good to know

  • Deal stage history is not synced, only the current stage.
  • Inbound calls are skipped, and cancelled meetings are removed.
  • HubSpot search returns at most 10,000 results per query; long deal backfills are read in slices, which takes a little longer.
  • Write-back only touches deals with an outbound attribution, in a property group named OutboundManager.

Dialers

KlentyDialer
  1. In Klenty, go to Settings → Integrations → Klenty API Key and copy the key. The key belongs to the user who is logged in.
  2. In OutboundManager, an admin opens Settings → Connections and clicks Add connection.
  3. Pick Klenty. Enter the Klenty account email (the login the key belongs to). With an admin key, list teammates' Klenty logins in "Teammates to include", comma separated.
  4. Paste the API key. It is checked against the tool automatically; click Save once it shows Key works. The key is stored encrypted.
  5. Open Settings → Reps & senders and give each dialer seat a rep, so calls land on the right row of the scorecard.

Good to know

  • Klenty's API only returns calls from the last 30 days, so the first backfill covers about 30 days, not 90.
  • Klenty email sends, replies and bounces are only available as totals, so no email activity is imported from Klenty.
  • There is no users endpoint: seats come from the key's user, the teammates you list and the callers on each call.
  • Klenty's date filter is unreliable, so every sync reads the widest window and filters records itself.
AircallDialer
  1. In Aircall, an admin opens Dashboard → Integrations & API → API keys and creates a key pair. Note the API ID and the API token.
  2. In OutboundManager, an admin opens Settings → Connections and clicks Add connection.
  3. Pick Aircall. Enter the API ID in "Aircall API ID".
  4. Paste the API token. It is checked against the tool automatically; click Save once it shows Key works. The key is stored encrypted.
  5. Open Settings → Reps & senders and give each dialer seat a rep, so calls land on the right row of the scorecard.

Good to know

  • Aircall keeps six months of call history in its API; the 90-day first backfill fits inside it.
  • Inbound calls are skipped.
  • Connected means the call was answered and lasted at least 10 seconds. Aircall cannot tell a person from an answering machine, so the floor filters most machine pickups.
  • Recording links from Aircall expire after an hour; the dashboard link does not.
DialpadDialer
  1. In Dialpad, a company admin goes to Admin Settings → My Company → Authentication → API keys and creates a company-level API key with the calls:list scope.
  2. Use a company key. A user-level key only returns that user's own calls.
  3. In OutboundManager, an admin opens Settings → Connections and clicks Add connection.
  4. Pick Dialpad. Paste the API key. It is checked against the tool automatically; click Save once it shows Key works. The key is stored encrypted.
  5. Open Settings → Reps & senders and give each dialer seat a rep, so calls land on the right row of the scorecard.

Good to know

  • Inbound calls are skipped.
  • Connected means the far end picked up, the call did not end in voicemail, and talk time was at least 10 seconds. Dialpad cannot tell a person from an answering machine on outbound calls.
  • If the key cannot list users, seats are taken from the calls themselves.
RingCentralDialer
  1. In the RingCentral Developer Console, create a private REST API app with JWT auth and the ReadAccounts and ReadCallLog permissions. Note its Client ID and Client secret.
  2. Create a JWT credential for a user who can read the company call log (a Super Admin, or a role with company call log access).
  3. In OutboundManager, an admin opens Settings → Connections and clicks Add connection.
  4. Pick RingCentral. Enter the app's Client ID. Leave Server URL blank for production.
  5. Paste the Client secret and the JWT in the key box, separated by a space. It is checked against the tool automatically; click Save once it shows Key works. The key is stored encrypted.
  6. Open Settings → Reps & senders and give each dialer seat a rep, so calls land on the right row of the scorecard.

Good to know

  • The call log has no prospect email, so RingCentral calls count on the scorecard but cannot credit a deal on their own.
  • Connected means a pickup result and at least 10 seconds. RingCentral reports a voicemail pickup as connected, so the floor filters most of them.
  • RingCentral rate limits the call log heavily (about one request every 6 seconds), so a busy account takes several runs to backfill.
  • Inbound calls are not read.
JustCallDialer
  1. In JustCall, an admin opens Settings → Developers (APIs & Webhooks) and copies the API key and the API secret.
  2. In OutboundManager, an admin opens Settings → Connections and clicks Add connection.
  3. Pick JustCall. Enter the API key in "JustCall API key".
  4. Paste the API secret. It is checked against the tool automatically; click Save once it shows Key works. The key is stored encrypted.
  5. Open Settings → Reps & senders and give each dialer seat a rep, so calls land on the right row of the scorecard.

Good to know

  • JustCall's API only gives the last 3 months of calls, so that is the whole history you can backfill.
  • Requests are paced for JustCall's Team plan limit (30 a minute), so large accounts take several runs to backfill.
  • Connected means answered with at least 10 seconds of conversation. JustCall counts machine pickups as answered; the floor filters most.
  • Incoming calls are skipped.
NooksDialer
  1. In Nooks, open Developer Settings → API Keys and create a workspace API key (it starts with nooks-api-).
  2. In OutboundManager, an admin opens Settings → Connections and clicks Add connection.
  3. Pick Nooks. Paste the API key. It is checked against the tool automatically; click Save once it shows Key works. The key is stored encrypted.
  4. Open Settings → Reps & senders and give each dialer seat a rep, so calls land on the right row of the scorecard.

Good to know

  • The Nooks REST API returns calls made on the Nooks sequencing platform. Parallel dialer calls that never touch it may be missing; Nooks logs those to your CRM, and a HubSpot connection counts them.
  • Connected follows the call disposition's Nooks outcome. A call with no disposition is not connected.
  • Inbound calls are skipped.
PhoneBurnerDialer
  1. In PhoneBurner, click your initials → Integration Settings → Personal Access Tokens and generate a token.
  2. In OutboundManager, an admin opens Settings → Connections and clicks Add connection.
  3. Pick PhoneBurner. Optionally enter your account time zone (for example America/New_York), because PhoneBurner call times carry no zone.
  4. Paste the token. It is checked against the tool automatically; click Save once it shows Key works. The key is stored encrypted.
  5. Open Settings → Reps & senders and give each dialer seat a rep, so calls land on the right row of the scorecard.

Good to know

  • PhoneBurner returns the caller's own dial sessions; there is no team-wide call list. Teammates' calls are read only when PhoneBurner gives team-admin access to them; otherwise teammates appear as seats without calls.
  • Calls carry only a phone number, so PhoneBurner calls count on the scorecard but cannot credit a deal on their own.
  • Dial sessions are not campaigns, so calls have no campaign.

Enrichment

MoltSetsEnrichment
  1. Create an API key in your MoltSets account (it starts with ms_). The MoltSets authentication guide shows where.
  2. In OutboundManager, an admin opens Settings → Enrichment, finds the provider card and clicks Add key.
  3. Paste the key. It is checked against the tool automatically; click Save once it shows Key works. The key is stored encrypted.
  4. Set its place in the waterfall and the monthly credit budgets on the same page. Managers can then run lists from Enrich.

Good to know

  • Email only; MoltSets does not return phone numbers here.
  • Flat-rate plans have weekly fair-use windows. When one is used up, MoltSets is skipped for the rest of that pass and the waterfall moves on.
  • A miss is free.
ApolloEnrichment
  1. In Apollo, open Settings → Integrations → API and create an API key. A master key also lets OutboundManager show your usage.
  2. In OutboundManager, an admin opens Settings → Enrichment, finds the provider card and clicks Add key.
  3. Paste the key. It is checked against the tool automatically; click Save once it shows Key works. The key is stored encrypted.
  4. Set its place in the waterfall and the monthly credit budgets on the same page. Managers can then run lists from Enrich.

Good to know

  • Email only. Apollo phone numbers need its webhook flow, which is not supported here.
  • Apollo charges 1 credit for a match with an email, including one rejected because it is at another company.
  • Personal emails are never requested.
  • API access and credits depend on your Apollo plan.
CrustdataEnrichment
  1. Copy your API key from your Crustdata account. Contact data needs a Crustdata plan that includes it.
  2. In OutboundManager, an admin opens Settings → Enrichment, finds the provider card and clicks Add key.
  3. Paste the key. It is checked against the tool automatically; click Save once it shows Key works. The key is stored encrypted.
  4. Set its place in the waterfall and the monthly credit budgets on the same page. Managers can then run lists from Enrich.

Good to know

  • LinkedIn URL only: Crustdata does not look up by name and company here.
  • Self-serve plans without contact data are refused by Crustdata with a permission error.
  • Crustdata charges 1 credit per matched email lookup and 2 per phone lookup; misses and people who asked to be removed are free.
LushaEnrichment
  1. Copy your API key from the API section of your Lusha dashboard. Your account needs Lusha API v3 access.
  2. In OutboundManager, an admin opens Settings → Enrichment, finds the provider card and clicks Add key.
  3. Paste the key. It is checked against the tool automatically; click Save once it shows Key works. The key is stored encrypted.
  4. Set its place in the waterfall and the monthly credit budgets on the same page. Managers can then run lists from Enrich.

Good to know

  • Uses Lusha API v3 only. If Lusha answers that V3 API access is not enabled, ask Lusha to turn it on.
  • Lusha charges for the search plus each revealed email or phone. No match means no charge.
  • Contacts Lusha blocks for legal reasons (GDPR) are skipped.
  • Personal emails are never used.
ZoomInfoEnrichment
  1. In the ZoomInfo Developer Portal, create an app that uses the Client Credentials flow with the api:data:contact scope. Note its Client ID and Client secret.
  2. In OutboundManager, an admin opens Settings → Enrichment, finds the provider card and clicks Add key.
  3. Enter the Client ID in its field.
  4. Paste the Client secret. It is checked against the tool automatically; click Save once it shows Key works. The key is stored encrypted.
  5. Set its place in the waterfall and the monthly credit budgets on the same page. Managers can then run lists from Enrich.

Good to know

  • Uses the ZoomInfo GTM Data API. The legacy Enterprise API (username and password) is not supported.
  • ZoomInfo has no per-email deliverability check, only an accuracy score. 90 and above counts as valid, 80 to 89 as catch-all, lower as unknown.
  • Credits are recorded as 1 per returned record, even when ZoomInfo does not charge for a record already under management.
  • ZoomInfo's licence may restrict storing or moving its data into other tools; check your contract.
FullEnrichEnrichment
  1. Copy your API key from your FullEnrich account settings.
  2. In OutboundManager, an admin opens Settings → Enrichment, finds the provider card and clicks Add key.
  3. Optionally set "Wait per lookup" (10 to 280 seconds, default 90).
  4. Paste the key. It is checked against the tool automatically; click Save once it shows Key works. The key is stored encrypted.
  5. Set its place in the waterfall and the monthly credit budgets on the same page. Managers can then run lists from Enrich.

Good to know

  • FullEnrich is asynchronous: most lookups take 30 to 90 seconds. Unfinished lookups are picked up on the next pass and never paid twice.
  • FullEnrich charges only when something is found (its published rates are 1 credit per work email and 10 per mobile); re-enriching the same input within 3 months is free.
  • FullEnrich keeps results for 3 months.

Replacing or rotating a key

Open the tool in Settings → Connections and use Replace key. The new key is tested before it is saved, and all synced history, sender mappings and campaign owners stay as they are.

Important: Do not remove a connection just to change its key. Removing a connection deletes the senders, campaigns, activity and deals that were synced through it. Use Replace key instead.

A tool you use is not listed

Tell us which one in Settings → Workspace → Outbound stack under "Other tools", or contact us. Salesforce is not supported yet; HubSpot is the only CRM today.

Something unclear or out of date? Tell us and we will fix this page.