Reply.io Actions Reference
Reply.io is a sales engagement platform for automating multi-channel outreach. These 11 actions let you manage contacts, check campaign stats, and enroll leads into sequences directly from a TexAu workflow, with no manual work in Reply required.
Before you begin
- You need a Reply.io account (Starter plan or higher) with API access enabled.
- Find your API key at Settings > API in Reply.io.
- Add it to TexAu at Settings > Integrations > Reply.io.
Contact Management
Update Contact (Reply.io)
Integration: Reply.io | Credits: 0 | Category: CRM
Creates a new contact if the email does not exist, or updates the record if it does. This upsert behavior makes it safe to run on any list without deduplication checks.
Inputs
| Field | Required | Notes |
|---|---|---|
| Email Address | Yes | Used to identify or create the contact |
| First Name | Yes | Required for creation |
| Last Name | No | |
| Company | No | |
| Job Title | No | |
| Phone | No | |
| City | No | |
| State | No | |
| Country | No | |
| Time Zone ID | No | Example: US Eastern Standard Time |
| LinkedIn Profile | No | Full LinkedIn URL |
Outputs
| Field | Description |
|---|---|
| Contact ID | Numeric Reply.io internal ID |
| Confirmed email | |
| First Name | |
| Last Name | |
| Company | |
| Job Title | |
| Phone | |
| Phone Status | Validation status |
| City | |
| State | |
| Country | |
| Time Zone ID | |
| LinkedIn Profile | |
| Adding Date | Date the contact was first created |
| Company Size | |
| Industry | |
| Sales Navigator URL | |
| LinkedIn Recruiter URL | |
| Account ID | Associated account in Reply |
Use cases
- Agency: Sync enriched prospect data from a Clay-style enrichment run directly into Reply without manual CSV export.
- Founder-led team: Add new leads found via LinkedIn scraping to Reply in the same workflow that discovers them.
- RevOps: Ensure CRM contacts have matching Reply records with updated job titles and company names before a campaign launches.
- GTM engineer: Build a pipeline where enriched contacts automatically land in Reply, ready for sequence enrollment.
Get Contact by ID (Reply.io)
Integration: Reply.io | Credits: 0 | Category: CRM
Retrieves a full contact profile using the Reply.io numeric Person ID.
Inputs
| Field | Required | Notes |
|---|---|---|
| Contact ID | Yes | Numeric person ID from Reply.io |
Outputs
| Field | Description |
|---|---|
| Contact ID | |
| First Name | |
| Last Name | |
| Company | |
| Job Title | |
| Phone | |
| Phone Status | |
| City | |
| State | |
| Country | |
| Time Zone ID | |
| LinkedIn Profile | |
| Adding Date | |
| Company Size | |
| Industry | |
| Sales Navigator URL | |
| LinkedIn Recruiter URL | |
| Account ID |
Use cases
- Agency: Look up contact state after a sequence finishes to confirm profile completeness before handing off to a client.
- Founder-led team: Pull contact data into a reporting table by ID to track who is in active sequences.
- RevOps: Validate that contact records in Reply are complete before triggering CRM sync.
- GTM engineer: Use Contact ID from a downstream Reply webhook event to fetch the full record and route it to another tool.
Get Contact by Email (Reply.io)
Integration: Reply.io | Credits: 0 | Category: CRM
Retrieves the same 19-field contact profile as Get Contact by ID, but searches by email address. The email field shows a dynamic dropdown populated from your Reply contacts.
Inputs
| Field | Required | Notes |
|---|---|---|
| Email Address | Yes | Dynamic dropdown from Reply contacts |
Outputs
Same 19 fields as Get Contact by ID.
Use cases
- Agency: Check whether a prospect is already in Reply before adding them, to avoid duplicates.
- Founder-led team: Look up a contact's Reply status directly from an email address captured in a form or spreadsheet.
- RevOps: Confirm contact exists in Reply when cross-referencing with HubSpot or Salesforce records.
- GTM engineer: Use as a pre-step before "Push to Campaign" to confirm the contact record is populated correctly.
Delete Contact by Email (Reply.io)
Integration: Reply.io | Credits: 0 | Category: CRM
Permanently removes a contact from Reply.io using their email address.
Inputs
| Field | Required | Notes |
|---|---|---|
| Email Address | Yes | Must exactly match the stored email |
Outputs
| Field | Description |
|---|---|
| Status | Success or error message |
Use cases
- Agency: Remove contacts who opted out of outreach across client accounts in bulk.
- Founder-led team: Clean up test contacts or bounced emails from Reply after a campaign ends.
- RevOps: Process unsubscribe or GDPR deletion requests automatically when triggered by a CRM event.
- GTM engineer: Build a suppression workflow that removes people from Reply when they are marked as churned or DNC in the source system.
Delete Contact By ID (Reply.io)
Integration: Reply.io | Credits: 0 | Category: CRM
Removes a contact using their numeric Person ID instead of email. Useful when the email address is unknown or has changed.
Inputs
| Field | Required | Notes |
|---|---|---|
| Person ID | Yes | Numeric Reply.io contact ID |
Outputs
| Field | Description |
|---|---|
| Status | Success or error message |
Use cases
- Agency: Remove outdated records when you have the Reply ID from a prior export but the email is no longer valid.
- Founder-led team: Delete contacts by ID when running cleanup from a Reply export report.
- RevOps: Purge contacts that were flagged in a bad-data audit, using IDs from a Reply data export.
- GTM engineer: Trigger deletion when an upstream event fires a Person ID (for example, from a Reply webhook).
Get All Contacts (Reply.io)
Integration: Reply.io | Credits: 0 | Category: CRM
Retrieves a paginated list of all contacts from your Reply.io account with metadata and contact details. Auto-paginates up to 10,000 records at 50 per page. No input parameters are required.
Inputs
None required.
Outputs
| Field | Description |
|---|---|
| Total Contacts | Total count across all pages |
| Current Page | Page being returned |
| Total Pages | Number of pages |
| Person ID | Reply.io internal ID |
| First Name | |
| Last Name | |
| Company | |
| Job Title | |
| Phone | |
| Phone Status | Validation status |
| City | |
| State | |
| Country | |
| LinkedIn Profile | |
| Adding Date | Date added to Reply |
| Next Page URL | Pagination link |
| Previous Page URL | Pagination link |
Use cases
- Agency: Export every contact in a Reply account to audit data quality before a client campaign launch. Identify records missing email or company name for enrichment.
- Founder-led team: Pull a full contact snapshot into a TexAu table to cross-reference against your CRM and find contacts that exist in Reply but not in your primary system.
- RevOps: Schedule a weekly export of all Reply contacts to a reporting table and track contact growth, completeness, and duplication over time.
- GTM engineer: Use as the starting dataset for a bulk enrichment pipeline. Feed Person IDs or emails into downstream actions like Get Contact by ID or email verification.
Contact Lists
Get Contacts by List Name (Reply.io)
Integration: Reply.io | Credits: 0 | Category: Integration
Retrieves all contacts in a named list from your Reply account. Auto-paginates up to 10,000 records at 50 per page.
Inputs
| Field | Required | Notes |
|---|---|---|
| List Name | Yes | Exact name of the list in Reply.io |
Outputs
| Field | Description |
|---|---|
| Total Contacts | Total count in the list |
| Current Page | Page being returned |
| Total Pages | Number of pages |
| Person ID | Reply.io internal ID |
| First Name | |
| Last Name | |
| Company | |
| Job Title | |
| Phone | |
| City | |
| State | |
| Country | |
| LinkedIn Profile | |
| Adding Date | Date added to Reply |
| Next Page URL | Pagination link |
| Previous Page URL | Pagination link |
Use cases
- Agency: Pull all contacts from a named list to audit completeness before a campaign launch.
- Founder-led team: Export a list for re-enrichment. feed Person IDs into Get Contact by ID to get the latest data.
- RevOps: Sync a Reply list to a reporting table to track list growth over time.
- GTM engineer: Use a list as the input dataset for a bulk "Push to Campaign" run by feeding emails into the campaign enrollment action.
Campaign Information
Get All Campaigns (Reply.io)
Integration: Reply.io | Credits: 0 | Category: Integration
Returns every campaign in your Reply account. Paginates automatically up to 10,000 campaigns at 50 per page. Use this as a prerequisite action. the Campaign ID it outputs is required by the campaign enrollment actions below.
Inputs
None required.
Outputs
| Field | Description |
|---|---|
| Campaign ID | Numeric campaign ID |
| Campaign Name | Display name |
| Campaign Status | Active, paused, or finished |
| Campaign Created At | Creation date |
| Campaign Is Archived | Boolean |
| Campaign Email Account | Sending email account |
Use cases
- Agency: List all active campaigns to populate a campaign selector column in a workflow.
- Founder-led team: Audit which campaigns are active, archived, or paused before starting a new outreach cycle.
- RevOps: Pull campaign IDs for use in enrollment pipelines or reporting dashboards.
- GTM engineer: Combine with Get Campaign Details to build a campaign health monitoring table.
Get Campaign Details (Reply.io)
Integration: Reply.io | Credits: 0 | Category: Integration
Returns performance stats for a single campaign: deliveries, opens, replies, bounces, and active people count.
Inputs
| Field | Required | Notes |
|---|---|---|
| Campaign ID | Yes | Numeric ID (use Get All Campaigns to find it) |
Outputs
| Field | Description |
|---|---|
| Campaign ID | |
| Campaign Name | |
| Created Date | |
| Status Code | Numeric status |
| Owner Email | Email of the campaign owner |
| Deliveries Count | Total emails delivered |
| Opens Count | Total opens |
| Replies Count | Total replies |
| Bounces Count | Total bounces |
| Active People | Contacts currently in the sequence |
Use cases
- Agency: Pull weekly campaign stats into a reporting workbook to share with clients.
- Founder-led team: Monitor reply rate and bounce rate across multiple campaigns to identify which sequences are working.
- RevOps: Alert the team when bounce count crosses a threshold, to protect sender reputation.
- GTM engineer: Feed open and reply rates into a scoring model to prioritize follow-up outreach.
Campaign Enrollment
Push Existing Contact to Campaign (Reply.io)
Integration: Reply.io | Credits: 0 | Category: Integration
Moves an existing Reply contact into a selected campaign. The contact must not already be in an active campaign. if they are, the action does nothing.
Inputs
| Field | Required | Notes |
|---|---|---|
| Campaign ID | Yes | Dynamic dropdown from Get All Campaigns |
| Email Address | Yes | Must already exist as a Reply contact |
Outputs
| Field | Description |
|---|---|
| Response Status | Success or error |
Use cases
- Agency: After enriching a list, move qualified contacts into the right sequence based on industry or job title segments.
- Founder-led team: Trigger campaign enrollment when a Calendly no-show is detected. automatically re-enroll the contact in a follow-up sequence.
- RevOps: Route contacts from a deal stage change in HubSpot into a nurture sequence in Reply.
- GTM engineer: Build a conditional enrollment workflow: enrich → score → push high-score contacts to a premium campaign.
Create Contact and Push to Campaign (Reply.io)
Integration: Reply.io | Credits: 0 | Category: Integration
Creates a new contact and enrolls them in a campaign in a single step. Use this when the contact does not already exist in Reply.
Inputs
| Field | Required | Notes |
|---|---|---|
| Campaign ID | Yes | Dynamic dropdown from Get All Campaigns |
| Email Address | Yes | New contact's email |
| First Name | Yes | Required for creation |
Outputs
| Field | Description |
|---|---|
| Response Status | Success or error |
Use cases
- Agency: Take a freshly scraped LinkedIn lead, create them in Reply, and drop them into a campaign in one workflow. no intermediate CSV step.
- Founder-led team: Add a cold lead found from a job board or community and start outreach within minutes.
- RevOps: When a new MQL is created in the CRM, automatically create them in Reply and enroll in the appropriate SDR campaign.
- GTM engineer: Wire the output of a LinkedIn scraper or email finder directly into this action to build a zero-touch prospect-to-sequence pipeline.
Troubleshooting
Contact was not pushed to campaign. action returned no error but nothing happened. The contact is already enrolled in an active campaign. Reply does not enroll a contact who is mid-sequence. Check their status in Reply.io and remove them from the current campaign first, then retry.
"Delete Contact by Email" succeeded but the contact still appears in Reply. Email matching is case-sensitive. Check for extra spaces or a different email variant in Reply. Use "Get Contact by Email" first to confirm the exact stored email.
"Get Contacts by List Name" returns no results. The list name must exactly match the name in Reply.io. including capitalization and spacing. Open Reply, copy the list name, and paste it directly into the field.
"Get Campaign Details" shows zero deliveries for an active campaign. The campaign may have just started or have no contacts enrolled yet. Confirm contacts are in the sequence by checking Active People count. If that is also zero, use "Push Existing Contact to Campaign" or "Create Contact and Push to Campaign" to add contacts.
Credit cost shows 0 but no result was returned.
These actions have success_only: false for most operations, meaning credits are charged on attempt rather than success. For enrollment actions (Push/Create and Push), the action uses success_only: true. meaning it only counts if the API response is positive. If the contact has a duplicate issue or is already in a campaign, the call will silently do nothing.