>unstuck engine
>Engine
>SignalsForty signal types, one pipeline>Waterfall enrichmentMulti-provider, ranked by reply rate>AudiencesSaved filters that update themselves
>Plays
>PLG AssistTurn free signups into enterprise pipeline>Inbound enrichmentEvery form fill, enriched and routed in seconds>ABMSurround the account, grade the buying committee
>Partners
>AgenciesPipeline as a service. With your name on top.>AdvocatesSix ways to advocate. Pick yours.
>Pricing
Book a Demo

> help

> Help index
  • 01Connecting a destination — HubSpot, Salesforce, Apollo
  • 02Field mapping
  • 03Using the Signals API
  • 04Using the Enrichment API
  • 05Using the MCP server and CLI
Contents

Help / 01 · Destinations & API

> Connecting a destination — HubSpot, Salesforce, Apollo

First-time setup for the four most-common destinations. OAuth, scope selection, default mapping, sync test. After this, any audience can push to the connected destination.

2 min read·Never reviewed

TL;DR: Settings → Destinations → + Connect. Pick the destination, OAuth in, configure scope and defaults. Done — any audience can now push to it.

HubSpot

  1. Click + Connect → pick HubSpot
  2. OAuth flow → log in to your HubSpot account, authorize Unstuck Engine
  3. Pick the HubSpot Account to push to (if your HubSpot user has access to multiple)
  4. Default object — Contact (default), Company, or Deal. Most workspaces use Contact for lead-level pushes
  5. Default list (optional) — every push lands in a HubSpot list with this name; you can override per audience
  6. Field mapping defaults — work_email → email, first_name → firstname, etc. Edit the mapping inline
  7. Test sync — Unstuck pushes a dummy record; you confirm it appeared in HubSpot

Scope requested by Unstuck Engine: contacts.read, contacts.write, lists.write, companies.read, companies.write. No deal write by default — enable separately if you push to Deals.

Salesforce

  1. Click + Connect → pick Salesforce
  2. OAuth flow → SFDC login, authorize
  3. Pick the Org (production / sandbox)
  4. Default object — Lead or Contact. Picking Lead is standard for net-new outbound; Contact for accounts already in your CRM
  5. Default campaign (optional) — every push lands in this Campaign as a CampaignMember
  6. Field mapping defaults — same idea, SFDC field names
  7. Owner assignment — auto-assign to a queue, a specific user, or by round-robin
  8. Test sync — same dummy-record verification

Scope: api access, contacts/leads read+write, campaigns read+write. Refresh token configured for long-running sync.

Apollo

  1. Click + Connect → pick Apollo
  2. Apollo doesn't use OAuth — paste your Apollo API key
  3. Default sequence — every push enrolls members in this sequence
  4. Mailbox routing — if your Apollo workspace has multiple sending mailboxes, pick the round-robin policy
  5. Field mapping defaults — usually minimal (email, first_name, last_name, company, title, linkedin_url)
  6. Test sync — adds a dummy record to a test sequence you verify

Apollo's API rate limits apply — Unstuck Engine respects them and batches sync at rate-limit-friendly intervals.

Smartlead

Same flow as Apollo, with Smartlead's API key. Default sequence is mandatory (a sync target).

Custom webhooks

For anything else (your own internal tool, a custom AI agent, a notification system):

  1. Click + Connect → pick Custom webhook
  2. Enter your webhook URL
  3. Set an auth header (e.g. Authorization: Bearer <your-secret>)
  4. Pick the events to POST — member_added, member_removed, member_updated, all of the above
  5. Test with a dummy event

Your webhook receives a JSON payload per event. Schema is documented in the Edge Function Contracts spec.

Verifying the connection

Each connected destination has a status indicator on the Destinations page:

  • 🟢 Connected & syncing
  • 🟡 Connected, no audiences using it
  • 🔴 Connection error (OAuth token expired, rate-limited, schema mismatch)

Click into any destination to see the last 10 sync events, success / failure counts, and last error message.

Disconnecting

Settings → Destinations → row → Disconnect. Stops all syncs and revokes the OAuth token. Records already in the destination remain; Unstuck Engine doesn't clean up downstream.

Related

  • Field mapping
  • Pushing an audience to a destination
  • Using the Signals API
  • Using the Enrichment API
Next 02Field mappingDestinations & API

On this page

  • HubSpot
  • Salesforce
  • Apollo
  • Smartlead
  • Custom webhooks
  • Verifying the connection
  • Disconnecting
  • Related

Share

> wave is here.

Schedule it.
>unstuck engine
PricingBlogContact
>unstuck engine

The B2B GTM engine. Signal-led targeting, ICP-fit pipeline.

Product

  • Pricing
  • Comparisons
  • Blog
  • Handbook
  • Help

Company

  • Contact

Legal

  • Terms
  • Privacy

© 2026 Unstuck Engine. All rights reserved.

> wave is here.

Schedule it.
>unstuck engine
PricingBlogContact
>unstuck engine

The B2B GTM engine. Signal-led targeting, ICP-fit pipeline.

Product

  • Pricing
  • Comparisons
  • Blog
  • Handbook
  • Help

Company

  • Contact

Legal

  • Terms
  • Privacy

© 2026 Unstuck Engine. All rights reserved.