Integration

Reply.io integration

Reply.io is a sales engagement platform for multichannel outreach. Manage contacts, contact lists, company accounts and custom fields, enroll contacts in sequences (email, LinkedIn, call and task steps), start, pause and archive sequences and edit their steps, read the unified inbox and reply in threads, send one-off emails and LinkedIn messages, manage tasks, email templates and blacklist rules, and read sequence, email, call, task and LinkedIn reports. Contacts, activities and conversations are personal data, and the send and start tools reach real people. Left out: the AI SDR and Jason AI features, AI prompts and prompt actions, live data prospecting and contact enrichment (they spend credits), email account and LinkedIn account connection and settings, domain purchases, webhooks, voices, holiday calendars, folders, sequence templates, step variants, bulk deletes, uploads, billing and settings. Authentication is a Reply API key (Settings > API Key; its scopes decide which tools succeed), sent as a Bearer token.

Ask it in chat

Say what should happen.
The workflow builds itself.

When this happens, do that in Reply.io.Built from the 101 Reply.io tools below, on the connection you add once.

What you can do with Reply.io

Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.

Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.

Contact, 8 operations

  • create_contactCreate contactPOSTAdd a single contact to your account with any profile and custom fields you have. Returns the contact with its new id.
  • delete_contactDelete contactDELETEDeletes one contact by its Reply id.
  • get_contactGet contactGETReturns one contact by id: profile fields, owner, opt-out, call and meeting status, and custom fields. Personal data.
  • get_sequence_contactGet sequence contactGETGet one contact's state inside a sequence: status, the step they're waiting on, when they were added, and opt-out.
  • list_contact_account_contactsList contact account contactsGETReturns the contacts linked to an account, each with email, name and job title. Paged with top and skip. Personal data.
  • list_contactsList contactsGETLists your contacts, or looks one up by exact email or LinkedIn URL, with profile fields, owner, opt-out and custom fields. Paged with top and skip. Personal data.
  • list_sequence_contactsList sequence contactsGETLists who is enrolled in a sequence and where each stands: status, current step, added date, opt-out and call status. Personal data.
  • update_contactUpdate contactPATCHChange specific fields on a contact without resending the whole record. Omitted fields stay as they are; callStatus and meetingStatus clear with none, and no field can be cleared by sending null here.

Sequence, 6 operations

  • create_sequenceCreate sequencePOSTCreate a sequence to send from. Name and at least one step are required, a sequence with no steps has nothing to send and cannot be started. Omit scheduleId to fall back to your default schedule.
  • delete_sequenceDelete sequenceDELETEDelete a sequence by id. Its contacts stay in your account, but the sequence can't be restored, archive it instead.
  • get_sequenceGet sequenceGETGet one sequence in full: name, status, owner, schedule, settings, connected accounts, and its complete list of steps.
  • list_contact_sequencesList contact sequencesGETSee which sequences a contact is in, with each sequence's name, their status, the current step, and when they were added.
  • list_sequencesList sequencesGETBrowse the sequences you can work with. Paged with top and skip, and filterable by status, owner, folder, and name.
  • update_sequenceUpdate sequencePATCHChange part of a sequence and leave the rest. settings merges key by key; account lists replace what's there.

Contact account, 5 operations

  • create_contact_accountCreate contact accountPOSTRegister a company as an account that contacts can link to. Only name is required; every other company field is optional.
  • delete_contact_accountDelete contact accountDELETEDeletes one account by id. Its linked contacts are kept and left without an account.
  • get_contact_accountGet contact accountGETGet one account by id: company details, owner, stage, linked contact count, and the mail provider behind its domain.
  • list_contact_accountsList contact accountsGETBrowse the accounts you can see, the companies your contacts belong to. Paged with top and skip, with an optional search.
  • update_contact_accountUpdate contact accountPUTReplace an account's details in full. Name and ownerUserId are required, and any optional field you leave out is cleared. customFields is the exception: the values you send are written, the values you leave out stay as they are.

Contact list, 5 operations

  • create_contact_listCreate contact listPOSTCreate a contact list to group contacts under. Set isShared to make it visible to your team, or leave it false to keep it private.
  • delete_contact_listDelete contact listDELETEDelete a contact list by id. A shared list can only be deleted by the person who created it.
  • get_contact_listGet contact listGETGet one contact list by id, including its name and whether it is shared with your team.
  • list_contact_listsList contact listsGETBrowse the contact lists you own plus any shared with your team. Paged with top and skip, with an optional name search.
  • update_contact_listUpdate contact listPUTRenames a contact list. Only the name changes, and the new name must be unique.

Email template, 5 operations

  • create_email_templateCreate email templatePOSTStore a reusable email as a template. Name, body, and folderType are required; folderType is personal or team.
  • delete_email_templateDelete email templateDELETEPermanently delete an email template by id. There is no undo, and a successful call returns no content.
  • get_email_templateGet email templateGETGet one email template in full: name, subject, body, folder, attachments, and its created and updated timestamps.
  • list_email_templatesList email templatesGETBrowse the email templates you can use: your own, your team's, and any shared with you. Paged with top and skip.
  • update_email_templateUpdate email templatePUTChange a template's content. Name and body are required every time, so send it in full, anything left out is overwritten.

Step, 5 operations

  • create_sequence_stepCreate sequence stepPOSTAdd a step to a sequence. type picks what it does, email, linkedIn, call, sms, condition, and more; linkedIn adds actionType.
  • delete_sequence_stepDelete sequence stepDELETEDelete a step from a sequence. Children re-attach to its parent by default; condition steps need a mode for the branches.
  • get_sequence_stepGet sequence stepGETGet one step of a sequence by id. Read type, and actionType for linkedIn, to know which other fields to expect.
  • list_sequence_stepsList sequence stepsGETGet every step in a sequence. Read type first to know the shape, and parentId to see how the steps chain together. Steps are ordered by their position number in the sequence.
  • update_sequence_stepUpdate sequence stepPUTChange what a step does. Send the whole step; give each variant an id, or it's added as new, and omitted ones are dropped.

Task, 5 operations

  • create_taskCreate taskPOSTCreate a task of your own. taskType, startAt, dueTo, and a template body are required; contactId for every type but toDo.
  • delete_taskDelete taskDELETERemove one task by id. An open task is cancelled and a completed one archived; either way it leaves your task lists.
  • get_taskGet taskGETGet everything about one task: type, status, the contact, the sequence step it came from, its dates, and its assignee.
  • list_tasksList tasksGETWork through your to-do list, your own tasks, plus teammates' when your role allows. Each carries type, status, and dates.
  • update_taskUpdate taskPUTReplace an open task in full. Send taskType, startAt, dueTo, and a template body every time; only open tasks can change.

Email, 4 operations

  • create_blacklist_email_ruleCreate blacklist email rulePOSTStop contacting one address while the rest of its domain stays reachable. Send a full email address as the pattern.
  • delete_email_blacklist_ruleDelete email blacklist ruleDELETEUnblock one address. It becomes reachable again unless a domain rule still covers its domain. Platform rules are read-only.
  • list_email_activityList email activityPOSTLists the individual emails behind the email report, one row per email sent: contact, email account, sequence, step, variant, delivery date and whether it was opened, clicked, replied, bounced or opted out.
  • list_email_blacklist_rulesList email blacklist rulesGETReview the email rules in force for you, each blocking a single address rather than a domain. Paged with top and skip.

Overview, 4 operations

  • get_call_overviewGet call overviewPOSTReturns call activity for a period: calls placed, answered and resolved positively, missed inbound calls, average duration and calls per answered contact, in total and per team member.
  • get_email_overviewGet email overviewPOSTReturns team-wide email totals for a period: contacts reached, delivered, opened, replied, interested, bounced, auto-replied, out of office, opted out and meetings booked, each with its rate.
  • get_linkedin_overviewGet linkedin overviewPOSTReturns team-wide LinkedIn activity for a period: connection requests sent and accepted, notes, messages and InMails with their replies, profile views, likes, follows, endorsements and comments.
  • get_task_overviewGet task overviewPOSTReturns task volume for a period: the total and the count and share of each task type (calls, emails, LinkedIn, SMS, to-dos, WhatsApp), in total and per team member.

Custom field, 3 operations

  • create_custom_fieldCreate custom fieldPOSTTrack something on contacts or accounts that Reply doesn't capture by default. Provide a title and a text or number field type; set entityType to account for a field that lives on accounts.
  • get_custom_fieldGet custom fieldGETGet one custom field definition by id: its title, its text or number type, its metadata, and whether it's org-wide.
  • list_custom_fieldsList custom fieldsGETGet every custom field of one entity, for your team and your organization. One flat array, no paging. Without entityType you get the fields your contacts can carry; pass entityType=account for the fields your accounts can carry.

Domain, 3 operations

  • create_blacklist_domain_ruleCreate blacklist domain rulePOSTStop contacting everyone at a domain. Send the bare domain such as example.com, no scheme, no address.
  • delete_domain_blacklist_ruleDelete domain blacklist ruleDELETEStop blocking a domain so contacts there are reachable again. Only your own rules go; Reply's platform rules are read-only.
  • list_domain_blacklist_rulesList domain blacklist rulesGETReview the domain rules in force for you, each blocking every contact at that domain. Paged with top and skip.

Email account, 3 operations

  • get_email_accountGet email accountGETGet one email account in full: connection, safety, signature, opt-out and ramp-up settings, tags, and connection status.
  • list_email_accountsList email accountsGETBrowse the email accounts you can send from. Pass my=true to see only your own. Paged with top and skip.
  • list_sequence_email_accountsList sequence email accountsGETSee which email accounts a sequence sends from, each with its address, sender name, daily limit, and connection status.

Filter, 3 operations

  • filter_contactsFilter contactsPOSTReturns a filtered, sorted page of contacts: field rules (property, condition, value), scoping by list, sequence or step, a free-text search term and a sort order. Paged with top and skip. Personal data.
  • filter_inbox_threadsFilter inbox threadsPOSTReturns the inbox threads matching a search term, channel, owner, sequence, email or LinkedIn account, contact, category, date range, source, or meeting intent. Paged with top and skip. Personal data.
  • filter_tasksFilter tasksPOSTNarrow the task list by due date, type, status, or overdue. Send at least one filter; list_tasks returns the whole list.

Stat, 3 operations

  • get_all_sequences_statsGet all sequences statsPOSTGet email and LinkedIn engagement per sequence. The window is capped at 31 days, as a preset or an explicit from and to.
  • get_email_account_statsGet email account statsGETSee how much sending capacity one email account has left: sent today, the daily limit, and the all-time total.
  • get_sequence_statsGet sequence statsPOSTGet engagement figures for one sequence. Set the window with a date range preset or an explicit from and to, not both.

Bulk, 2 operations

  • bulk_add_contacts_to_sequenceBulk add contacts to sequencePOSTEnrolls contacts in a sequence, up to 10,000 ids per call; a running sequence then sends them its steps. Set removeFromExisting to take them out of their current sequences.
  • link_contacts_to_accountLink contacts to accountPOSTLink up to 1000 contacts to an account in one call. A contact belongs to one account, so any already linked elsewhere is moved.

Category, 2 operations

  • list_inbox_categoriesList inbox categoriesGETGet the categories you can file conversations under, including Reply's reserved ones, each with its unread count.
  • set_inbox_thread_categorySet inbox thread categoryPUTFiles one conversation under an inbox category (categoryId, from list_inbox_categories), replacing the one it had: a thread sits in at most one. Clearing a thread's category is not available here.

Message, 2 operations

  • list_inbox_thread_messagesList inbox thread messagesGETPages through one conversation's messages, oldest first. Email messages carry recipient and subject; LinkedIn ones do not. Personal data.
  • send_inbox_thread_messageSend inbox thread messagePOSTSends a reply to a contact inside an existing conversation, by email or LinkedIn; the channel must match the thread's. This sends a real message to a person.

Schedule, 2 operations

  • get_scheduleGet scheduleGETGet one schedule in full: its time zone, main and follow-up windows, and the flags controlling how they apply.
  • list_schedulesList schedulesGETGet every schedule your team can use. A schedule sets the weekday windows a sequence may send in. One call, no paging.

Set status in sequence, 2 operations

  • set_contacts_status_in_one_sequenceSet contacts status in one sequencePOSTSet contacts to active, paused, finished, or outOfOffice in this sequence alone. Up to 100 ids, with no duplicates. Setting active resumes the steps a running sequence sends them.
  • set_contacts_status_in_sequenceSet contacts status in sequencePOSTSet contacts to active, paused, finished, or outOfOffice across every sequence they're in. Replied and bounced are separate. Setting active resumes the steps a running sequence sends them.

Thread, 2 operations

  • get_inbox_threadGet inbox threadGETReturns one conversation in full, with its message history in order. Use list_inbox_thread_messages to page a long exchange. Personal data.
  • list_inbox_threadsList inbox threadsGETLists your inbox: email and LinkedIn conversations with contacts, most recently active first. Paged with top and skip. Personal data.

Activity, 1 operation

  • list_contact_activitiesList contact activitiesGETReturns a contact's activity history (emails, calls, status changes and other tracked events). Paged with top and skip. Personal data.

Add contact, 1 operation

  • add_contacts_to_contact_listAdd contacts to contact listPOSTAdd contacts to a list while keeping their other list memberships. Contacts are processed one by one, so partial success sticks.

Archive, 1 operation

  • archive_sequenceArchive sequencePOSTPut a sequence aside without deleting it. Pause it first, and note that archiving removes every contact currently in it.

Bulk delete, 1 operation

  • bulk_remove_contacts_from_sequenceBulk remove contacts from sequencePOSTTakes several contacts (contactIds, no duplicates) out of a sequence in one call. Anything still scheduled for them there is cancelled; the contacts and their other sequences are kept.

Complete, 1 operation

  • complete_taskComplete taskPOSTMark a task done without carrying it out. On a call task, pass callResolution to record how the call went. Send at least one field: finishProspectInSequence=false only marks the task done.

Contact link, 1 operation

  • remove_contact_from_sequenceRemove contact from sequenceDELETETake one contact out of a sequence. They stop progressing, but the contact and their history stay in your account.

Email account link, 1 operation

  • assign_email_account_to_sequenceAssign email account to sequencePOSTAdd one more mailbox for a sequence to send from. A sequence can hold up to 100 linked accounts, and the call is idempotent.

Inbox thread, 1 operation

  • list_contact_inbox_threadsList contact inbox threadsGETReturns the email conversation threads exchanged with a contact, as they appear in your inbox. Paged with top and skip. Personal data.

List, 1 operation

  • list_lists_of_contactList lists of contactGETSee which contact lists a contact belongs to, including each list's name and whether it's shared with your team.

Mark as read, 1 operation

  • mark_inbox_threads_as_readMark inbox threads as readPOSTClears the unread state of one or more conversations (threadIds). The answer lists only the thread ids that were not updated, with their error.

Mark as unread, 1 operation

  • mark_inbox_threads_as_unreadMark inbox threads as unreadPOSTRestores the unread state of one or more conversations (threadIds). The answer lists only the thread ids that were not updated, with their error.

Move contact, 1 operation

  • move_contacts_to_contact_listMove contacts to contact listPOSTMoves contacts into a list and out of every other list. Use add_contacts_to_contact_list to keep their existing memberships.

Move to sequence, 1 operation

  • move_contact_to_sequenceMove contact to sequencePOSTEnrolls a contact into another sequence, whose steps are then sent to them while it runs. Set removeFromExisting to true to take them out of their current one.

Note, 1 operation

  • add_contact_noteAdd contact notePOSTRecord context, call summaries, or reminders on a contact's timeline, so your whole team works from the same history.

Owner, 1 operation

  • change_contacts_ownerChange contacts ownerPUTReassign contacts to another teammate after a handoff or territory change. Set reassignTasks to move their tasks too. A user can own only one contact per email.

Pause, 1 operation

  • pause_sequencePause sequencePOSTStop a running sequence sending further steps while keeping it and its contacts in place. It must have started once.

Send direct email, 1 operation

  • send_direct_emailSend direct emailPOSTSends a one-off email to a contact right away, outside any sequence, from a connected email account (the default one when none is given). This emails a real person; the reply is tracked on the contact.

Send direct linkedin connect, 1 operation

  • send_linkedin_connection_requestSend linkedin connection requestPOSTSends a LinkedIn connection request to a contact outside any sequence, from a connected LinkedIn account, with an optional note. This acts on LinkedIn toward a real person.

Send direct linkedin message, 1 operation

  • send_linkedin_messageSend linkedin messagePOSTSends a one-off LinkedIn message to a contact you are already connected with, from a connected LinkedIn account. This messages a real person.

Set bounced, 1 operation

  • set_contacts_bouncedSet contacts bouncedPOSTRecord bounces detected outside Reply across every sequence a contact is in. Marking as bounced stops further steps.

Set opted out, 1 operation

  • set_contacts_opted_outSet contacts opted outPOSTOpts contacts out of all outreach, or clears the flag. Opting out finishes them in every sequence they are in.

Set replied, 1 operation

  • set_contacts_repliedSet contacts repliedPOSTRecord replies captured outside Reply, in another inbox or CRM, across every sequence a contact is in. Stops further steps.

Start, 1 operation

  • start_sequenceStart sequencePOSTStarts a sequence or resumes a paused one, which sends its steps (emails, LinkedIn actions) to the enrolled contacts. It needs contacts, a connected email account and a schedule with sending hours.

Status, 1 operation

  • get_contact_statusesGet contact statusesGETCheck where a contact stands: global opt-out, call and meeting flags, plus their status in each sequence they're enrolled in.

Team user, 1 operation

  • list_team_usersList team usersGETLists the users you work with, each with name, email, team, workspace ownership and roles. Use it to turn a userId into a name. Personal data.

Unarchive, 1 operation

  • unarchive_sequenceUnarchive sequencePOSTBring an archived sequence back to its old status. Its contacts aren't put back, so add them again before starting.

Whoami, 1 operation

  • get_current_userGet current userGETSee which user an API key acts as, its userId, username, and teamId. The quickest way to confirm a key is valid.

Use Reply.io from Claude Code, Cursor or Codex

Connect Reply.io in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its Reply.io operations become tools the client can call, next to every other integration you connected.

Claude Code
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"
Codex (~/.codex/config.toml)
[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"

[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"
Cursor, Claude Desktop and other JSON configs
{
  "mcpServers": {
    "livecontext": {
      "type": "http",
      "url": "https://livecontext.ai/mcp",
      "headers": {
        "X-API-Key": "YOUR_API_KEY"
      }
    }
  }
}

Set up the MCP server step by step

How to connect Reply.io

  1. Create your workspace

    Sign up free. Nothing to install.

  2. Connect Reply.io once

    Add your Reply.io connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.

  3. Describe the job in chat

    The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.

Reply.io integration FAQ

What can you do with the Reply.io integration?

LiveContext exposes 101 operations on Reply.io, covering contact, sequence, contact account and contact list.

Popular integrations

Browse the whole catalog