Syncing Audiences to Your CRM
This guide walks you through building a targeted audience in SignalSmith and syncing it to a CRM platform like Salesforce or HubSpot. By the end, you’ll have an automated pipeline that keeps your CRM lists in sync with your warehouse-defined audience segments.
When to Use This
CRM audience syncs are the right approach when you need to:
- Push high-value account lists to your sales team’s CRM
- Keep marketing lists in HubSpot or Salesforce updated automatically
- Sync customer segments for personalized outreach campaigns
- Maintain suppression lists to prevent contacting opted-out customers
- Feed lead scoring models in your CRM with warehouse-computed traits
Prerequisites
- A configured warehouse connected to your data warehouse
- At least one entity type defined in your schema (e.g., User or Account)
- A CRM account with API access (Salesforce, HubSpot, or another supported CRM)
Step 1: Choose Your CRM Destination
SignalSmith supports several CRM destinations out of the box:
| CRM | Auth Method | Supported Objects | Notes |
|---|---|---|---|
| Salesforce | OAuth 2.0 | Lead, Contact, Account, Campaign Member, Custom Objects | Composite API for bulk operations |
| HubSpot | OAuth 2.0 or Private App Token | Contact, Company, Deal, List | Batch API for high-throughput syncs |
Connect the Destination
- Navigate to Destinations in the left sidebar
- Click Add Destination
- Select your CRM (e.g., Salesforce)
- Complete the authentication flow:
- Salesforce: Click “Connect with Salesforce” and authorize via OAuth. Select your environment (Production or Sandbox).
- HubSpot: Click “Connect with HubSpot” or enter a Private App access token with the required scopes (
crm.objects.contacts.write,crm.lists.write).
- Click Save
Step 2: Build a Relevant Audience
Build an audience that represents the customer segment you want in your CRM. Here are some common CRM audience patterns:
Example: High-Value Accounts
Entity Type: Account
WHERE
annual_revenue > 100000
AND contract_status = 'active'
AND health_score >= 70Example: Sales Qualified Leads
Entity Type: User
WHERE
lead_score >= 80
AND demo_requested = true
AND days_since_signup <= 30Example: Renewal Candidates
Entity Type: Account
WHERE
contract_end_date <= DATE_ADD(CURRENT_DATE, INTERVAL 90 DAY)
AND contract_status = 'active'
AND churn_risk_score < 50Building the Audience
- Navigate to Segment → Audiences
- Click Create Audience
- Select the entity type (e.g., “Account”)
- Use the filter builder to add conditions — combine trait values and attributes with AND/OR logic
- Click Estimate to check the audience size
- Click Preview to inspect sample members and verify the segment
- Name your audience descriptively (e.g., “High-Value Active Accounts”) and click Save
Step 3: Configure the Audience Sync with Mirror Mode
Mirror mode is recommended for CRM syncs because it keeps the destination list perfectly synchronized — adding new members, updating existing records, and removing members who no longer qualify.
- Navigate to Segment → Audience Syncs
- Click Create Audience Sync
- Select your audience (e.g., “High-Value Active Accounts”)
- Select your CRM destination (e.g., Salesforce)
- Choose Mirror as the sync mode
Why Mirror Mode for CRMs?
| Sync Mode | Behavior | CRM Use Case |
|---|---|---|
| Mirror | Adds, updates, and removes records to match the audience exactly | Best for dynamic lists that should always reflect current audience membership |
| Additive | Only adds new members, never removes | Lead capture lists where you never want to lose historical members |
| Subtractive | Only removes members who exit the audience | Suppression lists for opt-outs or do-not-contact |
For most CRM use cases, Mirror is the right choice. It ensures your sales team always sees the current state of each segment without stale records.
Step 4: Map Audience Fields to CRM Properties
Field mapping tells SignalSmith how to translate your entity attributes and traits into CRM-native fields.
- In the audience sync configuration, go to the Field Mapping section
- Map your identifier field to the CRM’s primary key:
- Salesforce: Map
emailtoEmailon the Lead/Contact object - HubSpot: Map
emailtoemailon the Contact object
- Salesforce: Map
- Map additional attributes and traits to CRM properties:
| SignalSmith Field | Salesforce Field | HubSpot Field |
|---|---|---|
email | Email | email |
first_name | FirstName | firstname |
last_name | LastName | lastname |
lifetime_value | Lifetime_Value__c (custom) | lifetime_value (custom) |
lead_score | Lead_Score__c (custom) | hubspot_score |
subscription_tier | Subscription_Tier__c (custom) | subscription_tier (custom) |
- For custom fields, ensure they exist in your CRM before syncing. SignalSmith will not create custom fields automatically.
- Set the sync schedule — common choices for CRM syncs:
- Every 1 hour — For time-sensitive sales workflows
- Every 6 hours — For general marketing lists
- Daily — For reporting-oriented segments
Step 5: Monitor Sync Runs
After saving and running the sync, monitor its execution to ensure data is flowing correctly.
- Navigate to the Sync Runs tab on your audience sync
- Review the first run summary:
- Members Added — New records created in the CRM
- Members Updated — Existing records updated with new field values
- Members Removed — Records removed from the CRM list (Mirror mode)
- Errors — Records that failed to sync
- Click into the run details to see per-record status if needed
- Check Insights → Sync Health for trend monitoring across all runs
What a Healthy Sync Looks Like
- First run: large number of “Members Added” (initial population)
- Subsequent runs: small numbers of adds, updates, and removes (incremental changes)
- Error rate below 1%
- Run duration consistent across executions
Step 6: Handle Common Errors
CRM syncs can encounter several types of errors. Here’s how to diagnose and resolve the most common ones.
Duplicate Records
Symptom: Sync reports “duplicate value” errors or creates multiple records for the same person.
Cause: The identifier field you’re matching on has duplicates in your audience, or the CRM already has records with the same identifier.
Resolution:
- Check your audience for duplicate identifiers — add a deduplication step to your model’s SQL query
- In Salesforce, check your duplicate rules under Setup → Duplicate Management
- Use a unique, stable identifier as the match key (e.g., email address or external ID)
Missing Required Fields
Symptom: Sync reports “required field missing” errors for some records.
Cause: The CRM object has required fields that aren’t included in your field mapping, or some records have NULL values for mapped required fields.
Resolution:
- Check which fields are required in your CRM’s object configuration
- Add the missing fields to your field mapping
- If some records have NULL values, add a filter to your audience to exclude incomplete records:
AND email IS NOT NULL AND last_name IS NOT NULL
Rate Limiting
Symptom: Sync runs are slow or partially fail with “rate limit exceeded” errors.
Cause: The CRM’s API rate limits have been reached, especially with large audiences.
Resolution:
- SignalSmith batches API calls automatically, but very large audiences (100K+) may still hit limits
- Schedule syncs during off-peak hours when API usage is lower
- For Salesforce, consider requesting a higher API limit from your Salesforce admin
- For HubSpot, ensure your account tier supports the throughput you need
Authentication Failures
Symptom: Sync fails with “unauthorized” or “token expired” errors.
Cause: OAuth tokens have expired or been revoked.
Resolution:
- Navigate to Destinations and click on the affected CRM destination
- Click Reconnect to re-authenticate
- Verify the connected user has the necessary permissions in the CRM
Best Practices
- Start with a small audience — Test with a limited segment (e.g., 100 records) before syncing your full audience to catch mapping issues early.
- Use custom fields for traits — Create custom fields in your CRM for SignalSmith-computed traits rather than overwriting standard fields.
- Set up alerts — Configure sync failure notifications so your team is notified immediately when a sync encounters errors.
- Document field mappings — Maintain a record of which SignalSmith fields map to which CRM properties, especially for custom fields.
- Review before Mirror deletes — If using Mirror mode, be aware that members who exit the audience will be removed from the CRM list. Ensure this is the intended behavior.
Next Steps
- Audience Syncs documentation — Deep dive into sync modes and configuration
- Retargeting Audiences — Extend activation to ad platforms
- Destination Filters — Control which audiences can sync to which destinations
- Salesforce destination — Salesforce-specific configuration details
- HubSpot destination — HubSpot-specific configuration details