Skip to Content

Reply.io

Sync contacts from your warehouse to Reply.io, the sales engagement platform for automating outbound outreach sequences. Keep your Reply.io contact lists enriched with the latest data from your data warehouse and automatically push contacts into campaigns.

Prerequisites

  • A Reply.io account with API access enabled
  • An API key from Reply.io (found in Settings > API Key)
  • The email address field must be present in your source data (Reply.io uses email as the unique identifier for contacts)

Authentication

Reply.io uses API key authentication.

  1. Log in to your Reply.io account
  2. Navigate to Settings > API Key
  3. Copy your API key
  4. In Zeotap, paste the API key into the API Key field

Your API key provides access to all Reply.io API endpoints. Keep it confidential and do not share it publicly.

Configuration

This destination has no additional configuration fields beyond authentication and target settings.

Target Settings

FieldTypeRequiredDescription
Campaign (optional)TextNoReply.io campaign ID to push contacts into. Leave empty to create contacts without adding to a campaign.

To find your campaign ID, open the campaign in Reply.io and copy the numeric ID from the URL or use the Reply.io API to list campaigns.

Supported Operations

Sync Modes

ModeSupported
UpsertYes
Insert
UpdateYes
Mirror
  • Upsert: Creates new contacts or updates existing ones. Reply.io matches contacts by email address. If a contact with the given email already exists, it is updated with the latest field values.
  • Update: Updates existing contacts only. Requires the email address as the primary key to identify which contact to update.

Insert mode is not separately supported because the Reply.io POST endpoint performs an implicit upsert — use upsert mode instead.

Audience Sync Modes

ModeSupported
Add
Remove
Mirror
Upsert

Reply.io does not have a list or segment membership API, so audience sync modes are not supported. Use standard sync modes to manage contacts and optionally push them to campaigns.

Features

  • Field Mapping: Yes
  • Schema Introspection: No — Zeotap provides curated default fields for Reply.io contacts

Required Mapping Fields

FieldDescription
emailContact email address (used as the unique identifier for matching)

Default Destination Fields

FieldTypeDescription
emailstringContact email address
firstNamestringFirst name
lastNamestringLast name
companystringCompany name
titlestringJob title
phonestringPhone number
citystringCity
statestringState or region
countrystringCountry
linkedInUrlstringLinkedIn profile URL

Additional custom fields can be mapped if they have been defined in your Reply.io account settings.

How It Works

  1. Upsert mode: For each row, Zeotap sends a POST /v1/people request to the Reply.io API. If a contact with the given email already exists, Reply.io updates the existing contact with the provided field values. If the contact does not exist, a new contact is created. When a campaign ID is configured, contacts are automatically pushed to that campaign.

  2. Update mode: For each row, Zeotap sends a POST /v1/people/{email} request to update the existing contact identified by the email address. If the contact does not exist, the API returns an error for that row.

Records are sent individually to the Reply.io API since there is no synchronous batch endpoint. All requests use application/json content type with the X-Api-Key header for authentication.

Rate Limits

Reply.io enforces the following rate limits:

  • 15,000 API requests per user per month
  • Upsert mode uses one API call per record
  • Update mode uses one API call per record
  • HTTP 429 response when limits are exceeded

Zeotap automatically retries on 429 errors with exponential backoff. Due to the relatively low monthly limit, plan your sync frequency carefully. Contact Reply.io support to request a rate limit increase if needed.

Best Practices

  • Use upsert mode for most syncs to handle both new and existing contacts seamlessly
  • Map the email field carefully — it is the sole identifier used to match contacts in Reply.io
  • Plan sync frequency around the 15,000 monthly API call limit — for example, syncing 1,000 contacts daily would use your monthly quota in about 2 weeks
  • Set a campaign ID in target settings if you want contacts to be automatically enrolled in an outreach sequence
  • Use custom fields by first defining them in Reply.io account settings, then mapping them in Zeotap
  • Monitor API usage in your Reply.io account settings to avoid hitting monthly limits

Troubleshooting

Authentication failed: invalid API key

Verify your API key is correct by checking Settings > API Key in your Reply.io account. API keys do not expire, but they can be regenerated — if you regenerated your key, update it in Zeotap.

Rate limiting (429 errors)

Reply.io allows only 15,000 API requests per user per month. Zeotap retries automatically on 429 errors with backoff. If you consistently hit rate limits, reduce your sync frequency or contact Reply.io support to request a higher limit.

Contact not found for update

When using update mode, the email address must match an existing contact in Reply.io. If the contact was deleted or the email is misspelled, the API returns an error. Switch to upsert mode if you want to create contacts that do not yet exist.

Duplicate contacts

Reply.io uses email as the unique identifier. If you see duplicates, ensure the email field is consistently formatted (lowercase, no trailing spaces) in your source data. Reply.io treats email matching as case-insensitive.

Campaign ID not found

If contacts fail to be pushed to a campaign, verify the campaign ID is correct. Open the campaign in Reply.io and check the numeric ID in the URL. The campaign must be active and not archived.

Custom fields not syncing

Only custom fields that have been defined in your Reply.io account will be accepted by the API. Navigate to Settings > Custom Fields in Reply.io to create the fields before mapping them in Zeotap.

Contact not added to campaign

A contact can only be active in one campaign at a time in Reply.io. If a contact is already enrolled in another campaign, the API will not add them to the new campaign. Remove the contact from the existing campaign first, or wait until the current sequence completes.

API connectivity errors

If the test connection fails with network errors, verify that your network allows outbound HTTPS traffic to api.reply.io. Check for firewall rules or proxy configurations that might block the connection.

Last updated on