# CRM and integrations

> Reply syncs two-way with Salesforce, HubSpot, Pipedrive, and Copper, reaches thousands of apps through Zapier, Make, and n8n, serves AI agents over MCP, and emits real-time webhooks.

**Reply syncs contacts, statuses, and activities two-way with Salesforce, HubSpot, Pipedrive, and Copper on a 2–3 hour cycle with field mappings and filters, connects to thousands of apps through Zapier, Make, and n8n, exposes an MCP server so AI agents can operate the account, and emits real-time webhooks for outreach events.**

_Status: Reviewed — human-edited, facts not yet confirmed against the product._

## At a glance

| | |
| --- | --- |
| **What it does** | Native two-way CRM sync (Salesforce, HubSpot, Pipedrive, Copper) plus in-CRM apps for Salesforce and Copper, workflow platforms (Zapier, Make, n8n), an MCP server for AI agents, real-time webhooks, website visitor tracking, Clay and RB2B lead feeds, Vidyard video in steps, and Okta or Microsoft Entra SSO |
| **Required objects** | An account or API key on the other platform; Reply contacts and sequences to sync with |
| **Surfaces** | UI · REST API · MCP |
| **Key limit** | Automatic CRM sync runs on a 2–3 hour cycle (every 2 hours for Salesforce, HubSpot, and Pipedrive); Sync now forces an immediate pass |
| **Stops on** | The integration's Enabled toggle — off pauses the whole integration; sync errors surface in the Logs tab |
| **Does not** | Sync multi-select picklist fields; update converted Salesforce leads; sync LinkedIn activities to Pipedrive; sync emails sent to a contact's secondary addresses into HubSpot; fire CRM triggers retroactively or for contacts missing on either side; let an MCP agent act on behalf of a whole team |
| **Plans** | Ownership mappings require Team Edition; Website Visitors includes 200 free visitor credits with paid add-ons (included on AI SDR plans); RB2B requires an RB2B Pro account |

## Summary

Reply moves outreach data in and out through four layers: native CRM integrations that
sync people, statuses, and activities both ways on a schedule; workflow platforms (Zapier,
Make, n8n) driven by triggers and actions; a real-time layer of webhooks that push events
to your endpoints; and an MCP server that lets AI agents read and operate the account
directly. Every CRM integration is built from the same parts — sync steps with a
direction, field mappings, filtering rules, and optional push-to-sequence actions — so
[Sync Reply with a CRM](/workflows/sync-reply-with-a-crm) applies to all of them.

## Problems it solves

- Manual re-entry between the CRM and the outreach tool — sync steps carry contacts, statuses, emails, tasks, calls, and notes in both directions
- Outreach activity invisible to sales — emails log as CRM tasks or logged emails, replies and inbox categories map to lead statuses
- CRM leads sitting untouched — filtered CRM segments push straight into a sequence at a chosen step
- Anonymous website interest going cold — Website Visitors identifies visitors, creates contacts, and can enroll new ones into sequences
- AI agents locked out of the execution layer — the MCP server gives a model scoped access to contacts, sequences, inbox, and reporting

## What Reply can do

- Sync Salesforce two-way with Default (preset) or Custom profiles — contacts, leads, people statuses, inbox categories, emails, tasks, calls, notes, and LinkedIn activities mapping to Salesforce tasks and notes
- Install the Reply managed package in a Salesforce Org so reps work from Salesforce: a quick action on the Lead or Contact page layout sends people to Reply, and a separate tab on the record shows their Reply sequence context; each Salesforce user is linked to their own Reply API key through a custom metadata record
- Sync HubSpot two-way, including Reply emails as HubSpot logged emails, plus BCC-based logging (your HubSpot BCC address) and a Chrome-extension import path
- Push Reply calls, tasks, emails, and LinkedIn activities into HubSpot as contact tasks and logged emails on predefined field mappings — call outcome, notes, recording link and duration land in the HubSpot call description; sequence name and step travel with emails; voice-message files attach to the LinkedIn task record
- Sync Pipedrive people every 2 hours over API, with instant webhook-driven triggers — email sent, opened, replied, link clicked, Interested or Negative inbox category, task completed, call logged, note added — firing Pipedrive actions such as recording activity, creating a deal in a pipeline, or moving a deal a stage forward
- Log manually created Reply tasks in Pipedrive with the Task created trigger, choosing how each one is recorded: activity for the person, activity for the deal, a new deal in a chosen pipeline, a deal moved to the next stage, or a deal moved to a specific stage
- Sync Pipedrive people in either direction with ownership mappings that create new records under the mapped owner and update ownership on existing ones, and a People to sequence block that pairs each Reply owner with a sequence and step
- Pull Copper leads and people into Reply, picking one primary email in Work → Personal → Other order
- Work from inside Copper CRM with the embedded Reply app: after installing it from Copper's Integrations page and logging into Reply, a Reply tab on any contact or lead adds that person to an existing sequence and shows which sequences they are already in
- Map fields per sync step (first name, last name, and email are required; leads also map Company to Account), including a CRM company-name field to Reply Account so account records are created and contacts assigned automatically
- Filter what syncs — default filters (Opened, Replied, Bounced, Opted out, To call, Clicked) or saved People-page filters as outbound filters
- Route synced contacts to owners with ownership mappings (Team Edition) and into a sequence at a chosen step, with Ignore step delay and Only for new records options
- Start Zaps from Reply events — sends, opens, replies, opt-outs, bounces, link clicks, inbox categories, a finished prospect, contact changes, and a Zapier step reached mid-sequence — and let Zapier act back on Reply by creating or updating people, pushing them to a sequence, or changing their state in one, with custom variables mapped onto default fields
- Automate through Make modules and the n8n node, which covers account-health, email, LinkedIn, and sequence events plus contact and sequence actions
- Push real-time webhooks for email, LinkedIn, call, and sequence events — with personal or team scope, optional payload fields, test deliveries, and delivery logs, managed in Settings or over the API
- Serve AI agents over MCP: the endpoint and API key come from the Integrations page, authentication is a bearer API key or OAuth, and agents work with contacts, sequences, inbox, tasks, analytics, and Jason AI configuration at the permission scopes the key grants
- Track website visitors with a header script — matching by email, normalized LinkedIn URL, then name plus company — creating or updating contacts and adding new ones to lists or sequences
- Ingest leads from Clay (create contact, push to sequence) and from RB2B via webhook with automatic field mapping
- Embed Vidyard videos in sequence steps — the step editor's Add Video control signs you in to Vidyard, you pick a video from your list and share it, and the video appears in the email body
- Lock organization sign-in to Okta or Microsoft Entra SSO, with automatic user provisioning on first sign-in

## What Reply cannot do

- Sync multi-select picklist fields with Salesforce, HubSpot, or Pipedrive
- Update a converted Salesforce lead — the sync logs an error instead
- Sync more than one lead status into HubSpot — the result depends on status mapping order
- Sync LinkedIn activities to Pipedrive
- Sync emails sent to a contact's secondary addresses into HubSpot — only the primary email address is covered
- Sync manual LinkedIn tasks, LinkedIn messages sent outside a sequence, or prospects' LinkedIn replies into HubSpot — only automatic LinkedIn steps performed after the integration was enabled are synced
- Log automatically generated tasks in Pipedrive through the Task created trigger — it covers manually created tasks only
- Sync a Pipedrive person to a Reply owner that is missing from the ownership mappings — those people are neither synced nor added to the sequence chosen for that owner
- Fire CRM triggers for contacts that are not already in both systems, or for events that happened before the trigger was enabled
- Push existing contacts to lists or sequences from Website Visitors — only newly created contacts are added
- Delete a tracked website in Reply before the script is removed from the site
- Let an MCP agent act on behalf of a team or organization — only a personal API key or OAuth as yourself works, and OAuth grants full permissions without scoping
- Undo an SSO tenant lock self-service — Microsoft Entra tenant lock is permanent by design, and with Okta or Entra active, SSO is the only way to log in

## Required inputs

Credentials on the other side — a Salesforce or HubSpot login, a Pipedrive or Copper API
key, a Reply API key for Zapier, Make, n8n, Clay, and MCP connections — plus field
mappings for custom sync steps, a webhook endpoint URL for event delivery, and site access
to install the Website Visitors script. SSO setup goes through Reply support with your
identity-provider parameters. The in-CRM apps need more: the Salesforce package is
installed by a user with the System Administrator profile (or package-install rights), the
Org must grant third-party access to Reply, and each Salesforce user who should reach
their own Reply account needs a metadata record pairing their Salesforce User ID with
their Reply API key; the Copper app is installed from Copper's own Integrations page and
asks each user to log in to Reply once. Website Visitors also needs a privacy policy and a
consent banner on your site before you switch it on.

## Produced outputs

Synced contact and lead records with a direct link to the CRM record on the contact card,
CRM tasks, logged emails, logged calls, and notes from Reply activity, deals created or
advanced in Pipedrive, Pipedrive person activities for manually created Reply tasks,
HubSpot task records carrying the sequence name and step (with voice-message files
attached where they exist), webhook deliveries with logs, contacts created from website
visits (exportable with first-tracked timestamps), and a sync Log tab per integration
showing what moved.

## Use Reply when

- The CRM must stay the system of record while Reply executes outreach — see [Sync Reply with a CRM](/workflows/sync-reply-with-a-crm)
- You want CRM segments flowing into sequences automatically, filtered and owner-routed
- An AI agent should operate outreach through MCP with scoped permissions — see [Agent index](/start/agent-index)
- You need events (replies, bounces, categorizations, account errors) pushed to your own systems in real time

## Do not use Reply when

- You need CRM-grade pipeline management inside Reply itself — deals, forecasts, and revenue reporting live in the CRM; Reply syncs into them
- You expect instant full-record sync — record sync is cycle-based (2–3 hours); only Pipedrive triggers and webhooks are real-time

## What you still need to build

- The field-mapping and ownership design — which system wins for which field, and who owns synced records; see [Contact deduplication](/behavior/contact-deduplication) for how matching behaves
- Webhook consumers — Reply delivers events; the endpoint that reacts to them is yours
- Sequence-side handling for pushed CRM contacts — enrollment rules still apply; see [Contact enrollment](/behavior/contact-enrollment)
- The consent and disclosure layer behind Website Visitors — a privacy policy covering what is collected and why, a cookie banner that takes affirmative consent, and a process that honors opt-out and deletion requests

```yaml
capability: integrations
supported: true
interfaces:
  product_ui: live
  api: live
  mcp: live
  cli: not-verified
required_objects:
  - contact
  - sequence
side_effects:
  - syncs_crm_records
  - creates_contacts
  - pushes_contacts_to_sequences
  - sends_webhook_events
human_approval_recommended: false
```

## Limits

- Automatic sync: every 2 hours for Salesforce, HubSpot, and Pipedrive; described generally as every 2–3 hours; Sync now runs an immediate pass
- HubSpot → Reply filters: two rules per filter, one rule when a date filter is used; syncs of 10,000+ records run slowly against HubSpot API rate caps
- HubSpot activity sync: tasks arrive with Priority None, Reminder No reminder, and Queue None, and are assigned by task assignee → HubSpot account; a manual email task completed without actually sending logs as a task rather than a logged email
- Pipedrive Task created trigger: manually created tasks only, and only for people that exist in both Reply and Pipedrive
- Pipedrive ownership mappings: one pre-set pair (the Reply account that set the integration up and the connected Pipedrive account); each owner on the left side of a pair can be selected only once, owners on the right side can repeat
- Zapier New Link Clicked: requires the sequence's Clicks tracking toggle to be on, and fires on every click
- One sequence per team member per Salesforce sync step
- Multi-select picklists: not supported across Salesforce, HubSpot, and Pipedrive
- Copper: one primary email synced per person (Work → Personal → Other); extra emails map to custom fields
- Website Visitors: 200 free visitor credits by default; add-ons raise the cap; included on AI SDR plans
- RB2B: RB2B Pro accounts and US-based traffic only
- Clay push-to-sequence: only contacts not already active in another sequence, and only into existing sequences
- MCP: personal API key (scopable) or OAuth as yourself; team and organization keys are not supported
- Date filters in sync rules evaluate in UTC±0

## FAQ

### How often does data sync, and can I force it?

Record sync runs automatically every 2–3 hours (the Salesforce, HubSpot, and Pipedrive
integrations state every 2 hours); Sync now triggers an immediate pass. Pipedrive
Triggers & Activity and Reply webhooks are event-driven and fire in real time. A yellow
dot next to the CRM means a sync is in progress; results land in the Logs tab.

### Can CRM contacts go straight into a sequence?

Yes. On a CRM-to-Reply sync step, add a sequence mapping: pick the sequence and the
starting step, optionally Ignore step delay so processing starts as soon as the sending
window opens, and Only for new records to skip updates. Enrollment checks still apply —
see [Contact enrollment](/behavior/contact-enrollment).

### Can I work with Reply from inside my CRM?

Yes, for Salesforce and Copper. The Salesforce managed package is installed into your Org
by an administrator and then surfaced on the Lead or Contact page layout as a quick action
that sends the record to Reply, plus a tab that shows the person's Reply sequence context;
a metadata record holds the Reply API key, and teams add one record per Salesforce user so
each rep reaches their own Reply account. Copper has an embedded app: install it from
Copper's Integrations page, open a contact or lead, click the **Reply** tab, log in once,
and from there you can move that person into an existing Reply sequence and see which
sequences they are already in.

### How do AI agents connect to Reply?

Over MCP. The endpoint URL and API key are on the Integrations page under the MCP server's
Configure panel; authenticate with a bearer API key header, or OAuth. A personal API key
can be scoped to just the permissions the agent needs, and operations that create, change,
or send things require write-level scopes — compatible clients ask for confirmation before
running them. Connection guides cover n8n, Make, Claude, Claude Code, and ChatGPT — see
[agents.reply.io/mcp](https://agents.reply.io/mcp).

### My CRM is not on the native list — what are the options?

Zapier (thousands of apps, trigger-action Zaps), Make, or the n8n node for workflow-level
sync; webhooks for pushing Reply events into your systems; and the
[REST API](https://docs.reply.io/api-reference/introduction) for anything custom. The
native HubSpot BCC option also works for plain email logging.

### Which Zapier triggers and actions can I build on?

A Zap pairs a trigger (an event in Reply) with an action (what happens next). Connect the
Reply account in Zapier with the API key from Settings.

| Zapier triggers — events in Reply | Zapier actions — what Zapier does in Reply |
| --- | --- |
| New Emails Sent (first step or a follow-up) | Create/Update Person |
| New Email Opened | Create/Update Person and Push to Sequence |
| New Email Replied | Mark as Replied |
| New Person Opt Out | Mark as Finished |
| New Person Bounce | Move to Next Step |
| New Link Clicked | Remove Person from Campaign |
| Inbox Category Set | |
| Prospect Finished | |
| Add or Update Contact | |
| Zapier Step Launched (a Zapier step reached mid-sequence) | |

Two triggers repay a closer look. **New Link Clicked** is one-way (Reply to your app),
needs the sequence's Clicks tracking toggle on, and fires on every click — its payload
carries a clicks-count value, so add a Zapier filter that proceeds only when the count
equals 1 if you want the first click alone. **Prospect Finished** carries the contact's
name, email, phone, company, title, city, state, country, LinkedIn URL, company size,
industry, time zone, campaign name, account and custom fields, the reason for finish
(Bounced, Replied, Finished after X days, Manual), the finished step number, and the total
step count — enough to write completion data into CRM custom fields you create for it.

Typical patterns people build: create or update a Reply contact (and push it to a
sequence) from a new Mailchimp subscriber, a new Agile CRM contact, a Typeform submission,
or a new Google Sheets row; create a lead in Close when a reply arrives; and post a Slack
notification when a prospect replies or finishes a sequence.

### What do I need in place before turning on Website Visitors?

Legal groundwork, because you are responsible for collecting and using visitor data
lawfully. Publish a privacy policy that discloses what data you collect, why — including
marketing and outreach — how it may be combined with other sources to build visitor
profiles, and how visitors opt out. Run a cookie banner that takes affirmative consent
before cookies or similar technologies are placed, explains what is collected and why, and
offers an opt-out. Then handle the data accordingly: in the U.S. that includes respecting
CCPA and CPRA rights — the right to know what personal information is collected, to
request its deletion, and to opt out of its sale or sharing — with a process that acts on
opt-out requests promptly.

> What applies to you depends on your location, your visitors' locations, and your business
> size, and some thresholds exempt small businesses. Confirm the specifics with a legal
> professional rather than treating this list as complete.

## Related

- [Sync Reply with a CRM](/workflows/sync-reply-with-a-crm) — the workflow built on this capability
- [Contacts](/specifications/contacts) — the primary object integrations create and update
- [Contact management](/capabilities/contact-management) — the surrounding capability
- [Contact deduplication](/behavior/contact-deduplication) — how matching and updates behave
- [Contact enrollment](/behavior/contact-enrollment) — what happens when synced contacts hit a sequence
- [API limits](/reference/api-limits) — rate limits on the API side
- [Agent index](/start/agent-index) — the machine-readable entry points

## Build with Reply

- REST API: [docs.reply.io](https://docs.reply.io/api-reference/introduction) — contacts, sequences, and webhook subscription endpoints
- MCP: [agents.reply.io/mcp](https://agents.reply.io/mcp) — agent access to contacts, sequences, inbox, analytics, and Jason AI configuration
- Webhooks: managed in Settings or over the API — event catalog and payload options in the API reference
