>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 / 02 · Destinations & API

> Field mapping

How Unstuck Engine fields translate to destination fields. Defaults handle the common cases (email, name, company); custom fields handle the workspace-specific cases (ICP code, engagement stage, signals).

2 min read·Never reviewed

TL;DR: Each destination has a per-audience field mapping. Defaults cover the 80% — email, name, company, title. Override the rest for workspace-specific custom fields.

What gets mapped

Unstuck Engine has ~30 fields per Lead and ~25 per Account. Destinations have their own schemas. Mapping declares which Unstuck field populates which destination field for the records this audience pushes.

Three categories of fields:

  • Standard — email, first name, last name, company name, title, phone, LinkedIn URL. Default mappings are sensible everywhere.
  • Targeting — ICP code, Persona code, ICP score, Persona score, engagement stage. Often needs custom destination fields (HubSpot custom property, SFDC custom field).
  • Signal context — last signal type, last signal at, signals count. Custom field territory.

Editing the mapping

On the audience detail page → Destinations section → row for the destination → click Edit mapping. The drawer shows:

Unstuck field → Destination field
────────────────────────────────────────────────
work_email → email
first_name → firstname
last_name → lastname
company_name → company
title → jobtitle
icp_code → icp_code [custom property]
persona_code → persona_code [custom property]
icp_score → icp_score [custom property]
engagement_stage → engagement_stage [custom property]
last_signal_type → last_signal_type [custom property]
last_signal_at → last_signal_at [custom property]

Click any row to change the destination field. Click + Add mapping to add a row (e.g. push profile_keywords to a HubSpot text-area field).

Creating destination custom fields

For HubSpot / Salesforce, custom fields must exist in the destination before Unstuck Engine can write to them. Two ways:

  • Manual — create the field in HubSpot / SFDC settings, then refresh the field list in Unstuck Engine's mapping drawer
  • Auto-provision — Unstuck Engine can create the missing custom fields for you. Click Create missing fields in the mapping drawer. Requires the destination integration to have schema-write scope (which the OAuth granted by default for HubSpot; explicit toggle for Salesforce)

The auto-provisioned fields are named with the unstuck_ prefix to make them identifiable:

  • unstuck_icp_code
  • unstuck_persona_code
  • unstuck_engagement_stage
  • etc.

Mapping behavior on sync

For each member synced:

  1. Unstuck Engine reads the current value of each mapped field on the record
  2. POSTs (create) or PATCHes (update) the destination record per the mapping
  3. The overwrite policy decides whether to overwrite existing destination values (Overwrite / Append / Skip-if-exists)

If a mapped Unstuck field is null on the record, the corresponding destination field is left untouched (not nulled out).

Per-audience mapping vs workspace defaults

You can set workspace-level default mappings per destination (Settings → Destinations → Defaults). These apply to any new audience that connects to the destination without an explicit override.

Per-audience mappings override the defaults. Useful when one audience needs different fields synced (e.g. a high-intent audience syncs unstuck_signal_history for context, while a volume outbound audience doesn't need it).

Field type compatibility

Field types must match between Unstuck and destination:

Unstuck type | Compatible destination types
string | string, text, picklist (if value matches), email, url
number | number, integer, decimal
boolean | boolean, picklist (yes/no)
date | date, datetime
string[] | multi-select picklist, text (comma-joined)

Type mismatches show as warnings in the mapping drawer. Most are auto-coerced (number → string is fine); some are blocked (string → boolean requires explicit mapping).

Related

  • Connecting a destination
  • Pushing an audience to a destination
  • Using the Signals API
Previous01Connecting a destination — HubSpot, Salesforce, ApolloDestinations & APINext 03Using the Signals APIDestinations & API

On this page

  • What gets mapped
  • Editing the mapping
  • Creating destination custom fields
  • Mapping behavior on sync
  • Per-audience mapping vs workspace defaults
  • Field type compatibility
  • 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.