Vector + Salesforce Integration Guide
Last updated: May 13, 2026
Vector integrates seamlessly with Salesforce to enrich your CRM with contact-level data, helping your team connect anonymous website visitors, qualify high-intent accounts, and drive timely outreach. This guide covers how the integration works, what data syncs where, and how to control every step of the process.
π How Do I Connect Vector to Salesforce?
A single Salesforce user (typically an admin or integration user) connects Vector to your Salesforce instance via OAuth. This connection handles all syncing across your organization β individual users do not need to log in with their own credentials.
To connect Salesforce to your Vector workspace:
Navigate to the bottom left corner. Integrations β Salesforce
Click Connect Salesforce
Youβll be redirected to log in via your Salesforce credentials
β
Once logged in, your Salesforce instance is securely connected to Vector.
β
Only one connection is needed:
π‘ Simply connecting Salesforce does not automatically start syncing any data. Data only flows to Salesforce when you explicitly add a Salesforce action to a segment β giving you full control over what is sent, and when.
π Required Salesforce Permissions
The Salesforce user account you use to connect Vector needs the right permissions in place before you authorize. If the connecting user is missing any of these, the OAuth flow may complete successfully β but syncing will fail silently or partially, which can be frustrating to diagnose.
We recommend connecting with a dedicated integration user rather than a personal admin account. This prevents the connection from breaking if someone changes their password or leaves the team.
System Permissions
The connecting user must have API Enabled turned on. This is the single most important permission β without it, Vector cannot communicate with your Salesforce instance at all, regardless of what object-level access is configured.
To check: go to Setup β Users β [User] β Profile or Permission Set β System Permissions β API Enabled β
If you're creating a dedicated integration user, assign them a profile that includes API access (e.g. Salesforce Integration or System Administrator), or create a custom Permission Set with API Enabled and assign it.
Object-Level Permissions
Vector needs the following access across the objects it touches. These should be set on the connecting user's Profile or an assigned Permission Set.
Salesforce Object | Read | Create | Edit | Notes |
|---|---|---|---|---|
Lead | β | β | β | Required if "Create leads" or "Update existing leads" is enabled in Vector |
Contact | β | β | β | Required if "Create contacts" or "Update existing contacts" is enabled |
Account | β | β | β | Required for Account sync and Account List pulling |
Task | β | β | β | Required if "Create new activity" is enabled in Vector |
List View | β | β | β | Required for Account List sync β Vector reads saved Salesforce views to pull Account Lists into segments |
Opportunity | β | β | β | Required if you use Opportunity data in Account List views for segmentation (e.g. filtering by Stage or Owner) |
β Heads-up on partial permissions: If the connecting user has Update but not Create on Leads, for example, Vector will be able to update existing leads but silently skip creating new ones β with no error shown in Vector. Make sure each toggle you've enabled in sync settings has the corresponding Salesforce permission to back it up.
Field-Level Security
Object-level permissions alone aren't enough β Salesforce also controls access at the individual field level. If a field is restricted for the connecting user, Vector won't be able to read or write to it even if the object-level access is correct.
At minimum, the connecting user needs Read, Edit, and Create access on:
Standard Lead fields: First Name, Last Name, Email, Company, Title, Phone, Website
Standard Contact fields: First Name, Last Name, Email, Phone, Title, Account Name
Standard Account fields: Name, Website, Industry, Number of Employees
Task fields: Subject, Status, Description, Activity Date, Who ID, What ID
Any custom fields you've created to receive Vector data (e.g.
Vector_Segment_Name__c,Vector_Last_Visit_Date__c,Vector_UTM_Source__c)
To check field-level security: go to Setup β Object Manager β [Object] β Fields & Relationships β [Field] β Set Field-Level Security.
π‘ Creating custom fields for Vector? When you create them, set visibility to Visible and Read-Write for the connecting user's profile right at creation time β it's easy to miss this step and end up with fields that are visible in the UI but blocked from API writes.
π Is the Integration Bi-Directional?
Vector is primarily a one-way integration (Vector β Salesforce) β but with limited data pulling from Salesforce β Vector to support segmentation:
β Pushes to Salesforce: Vector can enrich Leads, Contacts, and Accounts and optionally log Tasks
β Pulls from Salesforce: Vector can public Account Lists using saved views to support CRM-aligned segmentation (e.g. pulling in Account Name, Owner, Stage)
β Vector does not scan, enrich, or modify existing Salesforce records unless explicitly configured via segment actions
β Account Lists are read-only β Vector does not push enriched data back to those records
π So while the integration includes some limited pulling of account data, itβs not a full bi-directional sync in the traditional sense.
What Vector Sends to Salesforce
Enriched data may include:
First Name, Last Name
Job Title, Company Name, Company Domain
LinkedIn URL, Mobile Phone Number
Company Size, Seniority, Department, Industry
Segment metadata (Segment Name, Segment ID, Last Active Timestamp, etc.)
What Vector Does Not Pull From Salesforce
No scanning or importing of existing Contacts, Leads, or Accounts
No enrichment or modification of your existing CRM records
Data is only pushed when a segment includes a Salesforce sync action
β Sync Settings Overview
You control how Vector interacts with Salesforce across three objects:
Leads and Contacts (grouped in settings)
Accounts
Tasks (optional activity creation)
Lead/Contact Sync (Grouped in Settings)
In the Salesforce integration settings, Leads and Contacts are managed in a shared section β meaning sync behavior is configured together, but each object has its own independent toggle.
Available Options:
Update existing leads β Update Lead records matched by name + company
Create leads β Create new Leads if no match is found
Update existing contacts β Update Contact records matched by name + email
Create contacts β Create new Contacts if no match is found
β
You can turn each of these on or off based on how your CRM is structured and whether you work primarily in Leads, Contacts, or both.

Account Sync
Account sync is configured separately and provides the same flexibility:
Update existing accounts β Based on name + domain
Create new accounts β When no match is found
π Tip: Account sync is commonly used in ABM workflows to enrich known accounts with segment and intent data.

Task Creation
Vector can optionally create a Salesforce Task each time a visitor is identified via Contact, Lead, or Account.
Create new activity β Enables automatic creation of task records based on visit or intent triggers
This is helpful for logging activity, triggering automations, or alerting sales teams of high-intent behavior.
Example in Salesforce:
When a task is pushed, youβll see a record like this in Salesforce:

π Field Mapping: Standard & Custom
In Vector, you can control which fields get synced to Salesforce and where they land β at the Lead, Contact, or Account level. Each object has its own tab, and you can define mappings independently per object.

Standard Field Mapping (Default Fields)
Vector provides a set of core enrichment fields that can be mapped directly to their corresponding Salesforce fields. These include:
First Name
Last Name
Email
Company Name
Company Domain (mapped to Website)
Title
These are typically pre-selected for you and can be adjusted as needed. They are available across Leads, Contacts, and Accounts, depending on how your sync is set up.
π Field Mapping Using Dynamic Variables
Vector supports dynamic field mapping using structured variables when you select "Custom Value" as the data source.
Available Variables & Why Theyβre Helpful
Variable | Description | Why Itβs Helpful |
| The ID of the segment | Useful if you want a unique identifier for reporting or syncing back to systems. |
| The name of the segment | Great for dashboards or reporting β youβll always know which play or segment sourced a contact, especially if you name segments meaningfully. |
| Full timestamp of the last visit (e.g., 2025-03-05T18:01:03.735Z) | Shows exactly when a person last engaged, helpful for assessing freshness of intent. |
| Date of the last visit (e.g., 2025-03-05) | Lets reps quickly see if a visit was recent and worth acting on. |
| Time of the last visit (e.g., 18:01) | Adds precision on activity β valuable for context around engagement patterns. |
| Full timestamp of the first visit (e.g., 2025-03-05T18:01:03.735Z) | Shows when initial interest began, useful for understanding buying journey. |
| Date of the first visit (e.g., 2025-03-05) | Helps establish how long someone has been engaging with your site. |
| Time of the first visit (e.g., 18:01) | Useful for noticing patterns (like early morning vs. end-of-day browsing). |
| Page URL of the first visit | One of the most impactful fields: reveals what first caught a prospectβs eye. You wouldnβt say βI saw you visited X pageβ directly, but you can use it to frame conversations around relevant pain points or interest areas. |
| Accesses UTM properties from the first page view. Valid names: | Helps tie web activity back to campaigns or ads, making attribution clearer and guiding which marketing channels are driving engagement. |
Example in Salesforce:
When a task is pushed, youβll see a record like this in Salesforce:


Passing UTMs and First-Page Details into Salesforce
Vector can capture the very first page a contact or lead landed on and any UTM parameters tied to that visit. You can map these directly into Salesforce fields for cleaner attribution and campaign reporting.
Custom Value | What it captures |
{{firstPageViewWithUtm.utmSource}} | UTM source such as google or linkedin |
{{firstPageViewWithUtm.utmMedium}} | UTM medium such as email, cpc, social |
{{firstPageViewWithUtm.utmCampaign}} | UTM campaign name |
{{firstPageViewWithUtm.utmContent}} | UTM content identifier |
{{firstPageViewWithUtm.utmTerm}} | UTM term or keyword |
{{firstPageViewWithUtm.pageUrl}} | Full URL of the first landing page |
{{firstVisitDate}} | Date of the first visit |
{{firstVisitTimestamp}} | Full timestamp of the first visit |
{{lastVisitDate}} | Most recent visit date |
{{lastVisitTimestamp}} | Full timestamp of the most recent visit |
Vector + Salesforce Integration Guide
Vector integrates seamlessly with Salesforce to enrich your CRM with contact-level dataβhelping your team identify high-intent buyers, connect anonymous website visitors to real people, and take action at the right time.
This guide covers:
How to connect Vector to Salesforce
How data flows between systems
How to configure behavior (Leads vs Contacts, updates, etc.)
Best practices and common setups
π Connecting Vector to Salesforce
A single Salesforce user (typically an admin or integration user) connects Vector via OAuth.
To connect:
Navigate to Settings β Integrations β Salesforce
Click Connect Salesforce
Log in with your Salesforce credentials
β
Only one connection is required per organization
β
All syncing is managed centrally
π‘ Important:
Connecting Salesforce does not automatically send data.
Data is only sent when you explicitly add a Salesforce action to a segment.
π How the Integration Works
Direction of data flow
Vector β Salesforce (one-way)
Vector sends enriched contact and account data into Salesforce when triggered by segments.
β How Configuration Works
Organization-Level Settings (Not Per Segment)
All Salesforce settings are configured at the organization level, not per segment.
This means:
You cannot send one segment to Leads and another to Contacts
Your configuration applies globally across all segments
π§ What You Can Control
Vector gives you control over how data is created and updated in Salesforce through a set of toggles.
Available actions:
Create Leads
Update Leads
Create Contacts
Update Contacts
Create Accounts
Update Accounts
Create Tasks (activity logging)
Each of these can be enabled or disabled independently.
π₯ Leads vs Contacts: How to Decide
Understanding this is key to setting up the integration correctly.
Leads
Unqualified prospects
Not directly tied to Accounts
Typically owned by Marketing
Must be converted to become Contacts
Contacts
Qualified people tied to Accounts
Used by Sales
Immediately connected to company records
π§© Common Setup Patterns
1. Product-Led Growth (PLG)
Skip Leads entirely
Create Contacts directly
Configuration:
Create Contacts = ON
Create Leads = OFF
2. Traditional Enterprise Sales
Use Leads for qualification
Convert to Contacts later
Configuration:
Create Leads = ON
Create Contacts = OFF
3. Hybrid Model
Use both Leads and Contacts
Behavior:
Vector checks for existing Contacts first
If none found β creates a Lead (default priority)
π How Record Matching Works
When Vector processes a person, it follows this logic:
Lookup order:
Check for existing Contact
Match on: Name + Email
Check for existing Lead
Match on: Name + Company
If a record exists:
Updates that record (if enabled)
If no record exists:
Creates a Lead first (if enabled)
Otherwise creates a Contact
π§ͺ Data Requirements (Very Important)
Vector only creates or updates records if required fields are present.
Required fields:
ObjectRequired Fields | |
Lead | Company + First Name + Last Name |
Contact | Email + First Name + Last Name |
Account | Company Domain + Company |
If required data is missing, Vector will skip the action silently.
Example:
If a record has no company β Lead creation will not happen.
π’ Account Creation Behavior
You can choose whether Vector creates Accounts.
If enabled:
Accounts are created using company + domain
If disabled:
Vector will only associate with existing Accounts
π Activity Tracking (Tasks)
You can optionally log Vector activity in Salesforce as Tasks.
This allows your sales team to:
See engagement activity
Track intent signals
Prioritize outreach
β Important Limitations
1. No Per-Segment Routing
You cannot:
Send Segment A β Leads
Send Segment B β Contacts
Workarounds:
Use Salesforce Flows or automation to route records after creation
2. Free Plan Limitation
Cannot create new Contacts on free plans
Can still update existing Contacts
3. Data Quality Matters
Missing required fields will prevent record creation or updates.
π§ Recommended Setup Approach
Start simple
Choose Leads or Contacts (not both initially)
Test with a small segment
Validate behavior before scaling
Enable updates
Keep CRM data fresh
Monitor results
Watch for skipped records due to missing data
π Troubleshooting
Records not creating?
Check:
Is the correct βcreateβ toggle enabled?
Are required fields present?
Are you on a free plan (Contact creation blocked)?
Does Salesforce allow API access?
Wrong object type being created?
Leads are prioritized for new records when both are enabled
Missing fields may change behavior
Updates not working?
Check:
Is the βupdateβ toggle enabled?
Does the record match correctly?
Are Salesforce permissions set properly?
π‘ Best Practices
Align configuration with your sales motion
Ensure clean, complete data
Document your setup internally
Use Salesforce automation (Flows) for advanced routing
Treat this as part of your broader go-to-market strategy, not just a sync
Need help configuring your sync settings or testing your mappings? Let us know β weβre happy to help.