# Configuring Field Mapping

> Source: https://docs.trailspark.ai/crm-integration/field-mapping

## Overview

Field mapping defines which CRM fields feed Trailspark's account and lead fields. These mappings drive enrichment during signal processing and determine where evaluation results are written back to your CRM.

Requires **Editor**, **Admin**, or **Owner** role in Trailspark.

## Accessing Field Mapping

Go to **Settings** > **CRM Integration** > **Field Mapping** tab. A CRM must be connected first. For Airtable, table mapping must also be complete before this tab is available.

## Auto-Discovery and Refresh Fields

When you connect a CRM, Trailspark fetches that CRM's field schema automatically. The pickers in the **Field Mapping** tab populate from that cached schema.

If your CRM schema changes — new custom properties, renamed fields — click **Refresh Fields** on the **Connect** tab. Trailspark re-fetches the field list from your CRM and the updated fields appear in the mapping pickers immediately.

## Standard Fields

The **Standard Fields** tab contains the core fields Trailspark uses for lead evaluation and ICP matching.

### Account Fields

| Trailspark Field | Description | Used For |
| - | - | - |
| Account Name | Company/organization name | Display, identification |
| Website Domain | Company website domain | Naming and grouping accounts |
| Industry | Industry classification | ICP matching |
| Market Segment | Target market category (Enterprise, SMB, etc.) | ICP matching |
| Employee Count | Company size | ICP matching |
| Region | Geographic region | ICP matching |

### What a mapped Website Domain does

A mapped **Website Domain** tells Trailspark what your CRM believes the company's domain is. It does not rename the account on its own.

- If the account has no domain yet, the mapped one names it.
- If the mapped domain matches what the account is already called, nothing happens.
- If the mapped domain **disagrees** with the account's current domain -- including one you chose yourself -- the account keeps the domain it has, and the disagreement shows up as a review item under **Companies** > **Review** for you to settle. The account keeps being scored while it waits.

Clearing the mapping later simply withdraws your CRM's opinion; if that was the only thing the review item was about, the item closes itself.

### Lead Fields

| Trailspark Field | Description | Used For |
| - | - | - |
| Email Address | Primary email | Identity resolution (required) |
| First Name | Lead first name | Display |
| Last Name | Lead last name | Display |
| Company | Company name | Fallback identification |
| Job Title | Professional title | Role-based scoring |

**Job Title** does double duty: it is also how Trailspark decides which of your CRM contacts are worth pulling into a buying group, so a contact whose title is empty in every field you mapped here is left out. If your team keeps titles in a custom field, map it as the **Job Title** primary — and add the field your older records use as the fallback.

## Salesforce Dual-Field Picker

Salesforce stores people in both Lead and Contact objects. Trailspark provides a **dual-field picker** for each field — a **primary** field and a **fallback** field.

**Account fields** use:

- **Primary**: Salesforce Account object (e.g., `Account.Industry`)
- **Fallback**: Salesforce Lead object (e.g., `Lead.Industry`) — used for unconverted leads that don't have an Account record

**Lead fields** use:

- **Primary**: Salesforce Lead object (e.g., `Lead.Title`)
- **Fallback**: Salesforce Contact object (e.g., `Contact.Title`) — used for converted leads

When Trailspark looks up data for a Salesforce record:

1. If the record is a Contact with an Account, the Account/Contact mappings are used
2. If the record is an unconverted Lead, the Lead fallback mappings are used

## HubSpot Field Mapping

HubSpot uses a **single-field picker** per Trailspark field:

- Account fields map to **Company** properties
- Lead fields map to **Contact** properties

## Airtable Field Mapping

Airtable uses a **single-field picker** per Trailspark field, similar to HubSpot:

- Account fields map to fields in your **Companies** table
- Lead fields map to fields in your **Contacts** table

Because Airtable schemas are user-defined, the picker shows all fields from the mapped table. Trailspark also auto-detects common field name variants (e.g., `Employee Count`, `Employee Size`, `Employees`) for enrichment even without an explicit mapping.

> [!TIP]
> If your Airtable uses non-standard field names, explicit field mapping ensures Trailspark finds the correct data.

## Common Mappings

### Salesforce

| Trailspark Field | Account Field | Lead/Contact Fallback |
| - | - | - |
| Industry | `Account.Industry` | `Lead.Industry` |
| Employee Count | `Account.NumberOfEmployees` | `Lead.NumberOfEmployees` |
| Region | `Account.BillingCountry` | `Lead.Country` |
| Job Title | `Lead.Title` | `Contact.Title` |

### HubSpot

| Trailspark Field | HubSpot Property |
| - | - |
| Industry | `company.industry` |
| Employee Count | `company.numberofemployees` |
| Region | `company.country` |
| Job Title | `contact.jobtitle` |

### Airtable

| Trailspark Field | Airtable Field (example) |
| - | - |
| Industry | `Companies.Industry` |
| Employee Count | `Companies.Employees` or `Companies.Employee Count` |
| Region | `Companies.Region` or `Companies.Location` |
| Job Title | `Contacts.Title` or `Contacts.Job Title` |
| Website Domain | `Companies.Website` or `Companies.Domain` |

## Custom Fields

The **Custom Fields** tab lets you map additional CRM fields beyond the standard set — business-specific data like lead source, product interest, or territory that influence your scoring or ICP rules.

## Deal Fields

Alongside Account and Lead fields, the mapping picker also offers a **Deal** object context for HubSpot (**Opportunity** for Salesforce) — the CRM object behind the [Opportunities card](https://docs.trailspark.ai/accounts-dashboard/account-detail#opportunities) on the account page.

A **Deal Information** group suggests a few common properties as a starting point — **Forecast category**, **Next step**, **Lead source**, and **Description** — but nothing here is required and nothing is pre-selected. Trailspark already reads the core deal facts it needs (stage, amount, currency, close date, owner, pipeline, type) on its own, without any mapping. Map a deal field only when you want that extra property carried onto the deal.

Any deal property you map shows up as its own column in the **All deals** table on the account's Opportunities card, and is filled in retroactively for deals Trailspark has already synced.

## Saving Mappings

Field mappings do **not** auto-save. After configuring, click **Save All Mappings** at the bottom of the Standard Fields tab. The page validates mappings before saving and displays any errors that need correction.

> [!WARNING]
> Navigating away without saving discards your changes.

## Impact on Lead Scoring

- **Industry** and **Market Segment** drive ICP firmographic matching
- **Job Title** drives role-based scoring and seniority detection
- **Employee Count** and **Region** enable size and geographic targeting
- Missing mappings for these fields reduce scoring accuracy

## Buying-Group Field Mapping

To configure which CRM fields receive buying-group scores and role data, see [Destinations Overview](https://docs.trailspark.ai/destinations-rules/destinations-overview). That covers the destination-side field mapping — writing evaluation results (scores, roles, coverage) back to your CRM.

## Writing Enrichment Data to Your CRM

Field mapping on this page is one direction: it tells Trailspark where to *read* account data from your CRM. Each CRM destination (Salesforce, HubSpot) also has an **Enrichment Fields** card that writes the other direction — Industry, Employee Count, Region, Market Segment, and Website Domain — into CRM fields you choose, using data from the enrichment providers you've connected (for example Clay or Reo.dev).

Trailspark writes only that enrichment data into these fields. It never writes your CRM's own value, or a blend of your CRM's value and enrichment data, back into your CRM — so an edit you make in your CRM is never at risk of being overwritten by a Trailspark push.

Airtable works a little differently, since it isn't a system of record the way a CRM is: its **Account Fields** card lets you choose, field by field, between enrichment data only and Trailspark's best-known value (your CRM's value with enrichment filling any gaps — the same view shown on the account page).

See [Salesforce Destination](https://docs.trailspark.ai/destinations-rules/salesforce-destination), [HubSpot Destination](https://docs.trailspark.ai/destinations-rules/hubspot-destination), or [Airtable Destination](https://docs.trailspark.ai/destinations-rules/airtable-destination) for the field-by-field mapping options.

## Next Steps

- [CRM Integration Overview](https://docs.trailspark.ai/crm-integration/crm-integration-overview) — connect a CRM if you have not already
- [ICP Overview](https://docs.trailspark.ai/icp-creation/icp-overview) — build your Ideal Customer Profile using mapped fields
- [Destinations Overview](https://docs.trailspark.ai/destinations-rules/destinations-overview) — map buying-group fields back to your CRM
