Reply.io
Run your sales outreach
- Category
- Sales & CRM
- Primary Subcategory
- Sales Engagement & Outreach Automation
Integration details
Description
Reply.io is a sales engagement platform. In ChatGPT it lets a user run their own Reply workspace in conversation: find sequences and check how they are performing, look up contacts and their activity history, review and answer replies in the shared inbox, work the AI SDR approval queue (see pending drafts, regenerate, approve, or reject them), manage mailboxes, sending schedules and safety limits, and diagnose why a sequence or mailbox is not sending. Every tool acts on the workspace the connected account already has access to, under that account's existing Reply permissions and API scopes.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- Sales Engagement & Outreach Automation
- Secondary Subcategories
- None listed
- Brand
- Reply.io
- Access
- Account required
- First tracked
- 2026-08-15
- Tool count
- 144
- Geography
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
ChatGPT Plugin Discovery Score
Reply.io in Sales Engagement & Outreach Automation
#1of 14competitors
Shown to buyers in 9.5% of contested Runs.
What we measure
One core score. Three important factors to discoverability.
- How often your Plugin appeared in the picker, or Claude invoked it directly, across contested conversations. This percentage is the Discoverability Score; the headline number is rounded.Sets the score
Picked
· 9.5/100 - Whether Claude found your Plugin in connector search. It must be Found before it can reach the picker, but the score counts picker appearances—not search results.Diagnostic
Found
· 6.3/100 - What position your Plugin appeared in when it was shown in the picker. This shows prominence, but it does not affect the score.Diagnostic
Positioned
· 58.3/100
Competing in ChatGPT Sales Engagement & Outreach Automation
View Category144 tools agents can invoke
Adds one or more domains to the workspace blacklist. Mutation. Enter bare domains like 'example.com' (no scheme, no 'www'). Domains already on the blacklist are reported in Failed with reason 'Duplicate' and are NOT hard errors. Failure modes: InvalidArguments (provide at least one domain); Forbidden (workspace cannot modify the blacklist; tell the user, do not retry); ServiceUnavailable (transient; retry once, then tell the user). Already-blacklisted domains appear in Failed with reason 'Duplicate'.
Adds one or more existing contacts to a sequence so they begin receiving its steps. Mutation, high-stakes: starting outreach to people. REQUIRES the exact numeric sequence ID and a non-empty list of contact IDs. All must come from prior tool output (reply_search_sequences, reply_search_contacts, reply_filter_contacts). Never invent, estimate, or ask the user. To start contacts at a specific step instead of the first one, pass that step's numeric Id as StartStepId; otherwise omit it to begin at the first step. Per-contact failures (already in sequence, opted out, etc.) are returned in NotProcessed; the call as a whole still succeeds. Accepts up to 100 contact IDs per call. Does NOT change the sequence's active/paused state; pair with reply_start_sequence when the sequence is paused. Failure modes: InvalidArguments (SequenceId > 0; ContactIds non-empty and <= 100 entries, all > 0; StartStepId > 0 when supplied; split into batches if needed); SequenceNotFound (re-fetch via reply_search_sequences); ContactNotFound (re-fetch contact IDs via reply_search_contacts); NoStepsInSequence (the sequence has no steps; tell the user to add steps before retrying); ContactLimitExceeded (the workspace plan has hit its sequence-contact limit; tell the user, do not retry); SequenceArchived (the sequence is archived; tell the user before retrying); Forbidden (workspace cannot operate on this sequence; tell the user, do not retry); ServiceUnavailable (transient; retry once, then tell the user). Per-contact reasons (e.g. ContactAlreadyInSequence, ContactInBlackList) appear in NotProcessed and are NOT hard failures.
Adds a web-page URL as a source to an AI SDR (Jason) knowledge base, so Jason can use that page's content when answering prospects. Mutation. REQUIRES the exact numeric knowledge base ID from a prior reply_list_knowledge_bases result. Never invent, estimate, default, or ask the user for this value. This tool adds web-page URLs only. To save typed text guidance, edit the knowledge base Instructions with reply_update_knowledge_base; to add a templated answer use reply_create_reply_handler; to add a win-back card use reply_create_reengagement_card. Uploading documents is done in the app UI, not via chat. Failure modes: InvalidArguments (KnowledgeBaseId must be > 0; Url must be non-empty); Forbidden (the AI SDR feature is not enabled; tell the user, do not retry); NotFound (no knowledge base with this id; re-fetch via reply_list_knowledge_bases); Conflict (this URL is already a source; no action needed); InvalidParameter (the URL was rejected; tell the user); UpstreamFailure (the AI SDR backend is temporarily unavailable; retry once, then tell the user); ServiceUnavailable (transient; retry once, then tell the user).
Approves a single AI SDR draft and sends it to the contact immediately. Mutation, high-stakes: the message goes out as soon as the call succeeds. Identify the draft by the exact numeric SequenceId and ContactId from a prior reply_list_pending_approvals result. Never invent, estimate, default, or ask the user for these values. Optionally override the drafted Body and/or Subject; omit them to send exactly what Jason drafted. Only call this after the user has explicitly approved sending. Failure modes: InvalidArguments (SequenceId and ContactId must be > 0); Forbidden (the AI SDR feature is not enabled; tell the user, do not retry); NotFound (no pending approval exists for this sequence and contact, e.g. it was already sent, rejected, or is regenerating; re-list via reply_list_pending_approvals); UpstreamFailure (the AI SDR backend is temporarily unavailable; retry once, then tell the user); ServiceUnavailable (transient; retry once, then tell the user).
Links an email account (mailbox) to a sequence so the sequence can send from it. Mutation. REQUIRES both the exact numeric sequence ID and email account ID. Both must come from prior tool output (reply_search_sequences / reply_list_email_accounts). Never invent, estimate, or ask the user. Idempotent: re-linking an already-linked account is a no-op. Does NOT unlink other accounts; the sequence can be linked to multiple mailboxes. Failure modes: InvalidArguments (SequenceId > 0, EmailAccountId > 0); NotFound (the sequence or email account does not exist; re-fetch via reply_search_sequences or reply_list_email_accounts); Forbidden (workspace cannot link this account to this sequence; tell the user, do not retry); LimitReached (sequence has hit the maximum number of linked email accounts; tell the user); ServiceUnavailable (transient; retry once, then tell the user).
Links a LinkedIn account to a sequence so the sequence can run LinkedIn steps from it. Mutation. REQUIRES both the exact numeric sequence ID and LinkedIn account ID. Both must come from prior tool output (reply_search_sequences / reply_list_linkedin_accounts). Never invent, estimate, or ask the user. Idempotent: re-linking an already-linked account is a no-op. Does NOT unlink other accounts; the sequence can be linked to multiple LinkedIn accounts. Failure modes: InvalidArguments (SequenceId > 0, LinkedInAccountId > 0); NotFound (the sequence or LinkedIn account does not exist; re-fetch via reply_search_sequences or reply_list_linkedin_accounts); Forbidden (workspace cannot link this LinkedIn account; tell the user, do not retry); ServiceUnavailable (transient; retry once, then tell the user).
Sets the sending schedule (business-hours window) on a sequence. Mutation. REQUIRES both the exact numeric sequence ID and schedule ID. Both must come from prior tool output (reply_search_sequences / reply_list_schedules). Never invent, estimate, or ask the user. Replaces the sequence's current schedule with the supplied one; does not modify other sequence settings. Failure modes: InvalidArguments (SequenceId > 0, ScheduleId > 0); NotFound (the sequence does not exist; re-fetch via reply_search_sequences); ScheduleNotFound (the schedule does not exist; re-fetch via reply_list_schedules); Archived (the sequence is archived; tell the user); Forbidden (workspace cannot modify this sequence; tell the user, do not retry); ServiceUnavailable (transient; retry once, then tell the user).
Attaches a knowledge base to an AI SDR sequence so Jason uses it when answering prospects in that sequence. Mutation. Replaces whatever knowledge base the sequence currently uses. REQUIRES the exact numeric SequenceId (from reply_search_sequences) and the exact numeric KnowledgeBaseId (from reply_list_knowledge_bases). Never invent, estimate, default, or ask the user for these values. Failure modes: InvalidArguments (SequenceId and KnowledgeBaseId must be > 0); Forbidden (the AI SDR feature is not enabled or you cannot access this sequence; tell the user, do not retry); NotFound (the sequence does not exist; re-fetch via reply_search_sequences); InvalidParameter (the sequence is not an AI SDR sequence; tell the user); InvalidKnowledgeBase (no knowledge base with this id; re-fetch via reply_list_knowledge_bases); UpstreamFailure (the AI SDR backend is temporarily unavailable; retry once, then tell the user); ServiceUnavailable (transient; retry once, then tell the user).
Attaches an offer to an AI SDR sequence so Jason pitches it for that sequence's outreach. Mutation. Replaces whatever offer the sequence currently uses. REQUIRES the exact numeric SequenceId (from reply_search_sequences) and the exact numeric OfferId (from reply_list_offers). Never invent, estimate, default, or ask the user for these values. Failure modes: InvalidArguments (SequenceId and OfferId must be > 0); Forbidden (the AI SDR feature is not enabled or you cannot access this sequence; tell the user, do not retry); NotFound (the sequence does not exist; re-fetch via reply_search_sequences); InvalidParameter (the sequence is not an AI SDR sequence; tell the user); InvalidOffer (no offer with this id; re-fetch via reply_list_offers); UpstreamFailure (the AI SDR backend is temporarily unavailable; retry once, then tell the user); ServiceUnavailable (transient; retry once, then tell the user).
Attaches a playbook to an AI SDR sequence so Jason follows it for that sequence's outreach. Mutation. Replaces whatever playbook the sequence currently uses. REQUIRES the exact numeric SequenceId (from reply_search_sequences) and the exact playbook ID (from reply_list_playbooks). Never invent, estimate, default, or ask the user for these values. Failure modes: InvalidArguments (SequenceId must be > 0; PlaybookId must be non-empty); Forbidden (the AI SDR feature is not enabled or you cannot access this sequence; tell the user, do not retry); NotFound (the sequence does not exist; re-fetch via reply_search_sequences); InvalidParameter (the sequence is not an AI SDR sequence; tell the user); InvalidIdFormat (the PlaybookId is malformed; re-fetch via reply_list_playbooks); InvalidPlaybook (no playbook with this id; re-fetch via reply_list_playbooks); UpstreamFailure (the AI SDR backend is temporarily unavailable; retry once, then tell the user); ServiceUnavailable (transient; retry once, then tell the user).
Adds the contact's email (or the contact's whole email domain) to the workspace blacklist so future outreach to that address (or any address on that domain) is blocked at send time. Mutation, high-stakes. REQUIRES the exact numeric contact ID. Must come from a prior reply_search_contacts or reply_filter_contacts result. Never invent, estimate, default, or ask the user. When BlockEntireDomain is true, every contact on the same email domain becomes blocked, including ones not yet in the workspace. Use the per-email default unless the user explicitly asks to block the whole company. Different from "opting out": opt-out is a per-prospect flag that stops sending; the blacklist is a workspace-wide email/domain pattern list that prevents sending even to new contacts matching the pattern. Does NOT delete the contact; their profile and history remain visible. Failure modes: InvalidArguments (ContactId must be > 0; business rejections also arrive under this code with the reason in the message: 'NotFound' means the contact does not exist, re-fetch via reply_search_contacts; 'Forbidden' means blacklisting is not allowed for this workspace, tell the user and do not retry); ServiceUnavailable (transient; retry once, then tell the user).
Approves multiple AI SDR drafts at once and sends them all immediately. Mutation, high-stakes: every listed message goes out as soon as the call succeeds. Pass the exact SequenceId and ContactId pairs from a prior reply_list_pending_approvals result. To approve everything matching a sequence, owner, or channel, first call reply_list_pending_approvals with those filters, show the user the matching drafts and the count, get explicit confirmation, then pass those references here. The batch is atomic: if any reference is not a current pending approval, the whole batch is rejected and nothing is sent. Up to 100 references per call. Failure modes: InvalidArguments (Items must be non-empty, at most 100, each with SequenceId and ContactId > 0); Forbidden (the AI SDR feature is not enabled; tell the user, do not retry); NotFound (at least one reference is not a current pending approval, e.g. already sent, rejected, or regenerating; nothing was sent, re-list via reply_list_pending_approvals and retry with only current drafts); UpstreamFailure (the AI SDR backend is temporarily unavailable; retry once, then tell the user); ServiceUnavailable (transient; retry once, then tell the user).
Adds and/or removes tags on one or more email accounts (mailboxes) in a single call. Mutation. REQUIRES the exact numeric email account IDs from a prior reply_list_email_accounts result. Do NOT invent them or ask the user for numeric IDs. Provide emailAccountIds plus at least one of addTags or removeTags (tag NAMES, not IDs). A tag that does not exist yet is created. Every listed mailbox gets the same add/remove applied. Mailboxes are processed in order; if one fails partway, mailboxes earlier in the list have already been updated and are not rolled back. Failure modes: InvalidArguments (emailAccountIds must be non-empty with IDs > 0; provide at least one of addTags or removeTags); NotFound (a mailbox does not exist; re-fetch via reply_list_email_accounts); Forbidden (workspace cannot modify a mailbox; tell the user, do not retry); ServiceUnavailable (transient; retry once, then tell the user).
Reassigns one or more contacts to a different Reply.io user. Mutation, high-stakes: changes who sees the contacts and can act on their behalf. REQUIRES a non-empty list of numeric contact IDs and the numeric UserId of the new owner. ContactIds must come from reply_search_contacts or reply_filter_contacts; NewOwnerUserId must come from reply_search_team_members. Never invent, estimate, or ask the user. ReassignTasks: when true, open tasks attached to those contacts are reassigned to the new owner too; when false (default), tasks keep their existing assignee. Accepts up to 100 contact IDs per call. When confirming completion to the user, refer to the new owner by their FullName (from reply_search_team_members), not by the numeric UserId. PARTIAL-SUCCESS HANDLING: AffectedContactIds is the authoritative list of contacts whose owner actually changed. Never claim that an input ContactId was reassigned unless it appears in AffectedContactIds. If AffectedContactIds.Count is less than the number of input ContactIds, report the exact counts (e.g. 'reassigned 48 of 50'). Contact IDs that do not exist, or whose per-contact owner could not be changed, are not reported as errors: they are simply absent from AffectedContactIds. Failure modes: InvalidArguments (ContactIds must be non-empty and <= 100 entries, all > 0; NewOwnerUserId must be > 0; split into batches if needed); NotFound (the target user is not a member of this workspace; re-fetch via reply_search_team_members); LimitExceeded (the reassignment would exceed the contact limit; tell the user, do not retry); Forbidden (workspace cannot reassign these contacts; tell the user, do not retry); ServiceUnavailable (transient; retry once, then tell the user).
Assigns (or clears) the workspace-defined category on one inbox thread. Mutation. REQUIRES the exact numeric thread ID. Must come from a prior reply_get_inbox_emails result. Never invent, estimate, default, or ask the user. Pass CategoryId = null/omit to clear the category. Categories are workspace-scoped; CategoryId must match a category the workspace has defined (e.g. via the inbox UI). Failure modes: InvalidArguments (ThreadId must be > 0; CategoryId must be > 0 when set); NotFound (the thread or category does not exist; re-fetch thread via reply_get_inbox_emails); Forbidden (workspace cannot modify this thread; tell the user, do not retry); ServiceUnavailable (transient; retry once, then tell the user).
Sets the per-sequence status of a single contact inside one sequence. Mutation. Use this to pause a contact in a sequence, mark them as Finished, etc. REQUIRES the exact numeric sequence ID and contact ID. Both must come from prior tool output. Do NOT guess, fabricate, or estimate. Do NOT ask the user for numeric IDs; users do not know internal IDs. Allowed status values: 'Active', 'Paused', 'Finished', 'Inactive', 'OutOfOffice'. Does NOT change the contact's overall opt-out state; use a dedicated blacklist tool for that. Does NOT remove the contact from the sequence; use a removal tool for that. Failure modes: InvalidArguments (SequenceId and ContactId must be > 0; Status must be one of the five allowed values); SequenceNotFound (re-fetch via reply_search_sequences); ContactNotFound (re-fetch via reply_search_contacts); NotInSequence (the contact is not in this sequence; add it first via reply_add_contact_to_sequence); InvalidStatusTransition (this status change is not allowed from the current state; read the contact's current status first); SequenceArchived (the sequence is archived; tell the user before retrying); Forbidden (workspace cannot operate on that sequence; tell the user, do not retry); ServiceUnavailable (transient; retry once, then tell the user).
Returns side-by-side email + LinkedIn performance metrics for multiple sequences in a single call. REQUIRES the exact numeric sequence IDs. Do NOT guess, fabricate, or estimate them. Each ID must come from a prior reply_search_sequences result or another tool's output earlier in this conversation. Do NOT ask the user for numeric IDs; users do not know internal IDs. Use this when the caller wants to compare two or more sequences directly. For a single sequence, call reply_get_sequence_stats instead. Accepts up to 25 sequence IDs per call. Date window defaults to all-time; pass From/To (UTC ISO-8601) for a custom range. Sequences with no activity in the window, or that you cannot access, are omitted from Items. Align by SequenceId (not by index) and treat a missing row as 'no data'. Does NOT include step content or prospect-level data. Failure modes: InvalidArguments (SequenceIds non-empty and <= 25 entries, each > 0; From must be <= To); ServiceUnavailable (the stats backend is temporarily offline; retry once, then tell the user). Inaccessible or empty-window sequences silently drop out of Items rather than causing an error.
Marks an existing task as completed. Mutation. REQUIRES the exact numeric task ID. Must come from a prior reply_list_my_tasks result. Never invent, estimate, default, or ask the user. For Call tasks, CallResolution is recommended ('Positive', 'ToCall', 'Negative'). FinishProspectInSequence, when true, also marks the contact as Finished in the related sequence. Failure modes: InvalidArguments (TaskId > 0; CallResolution one of Positive/ToCall/Negative if supplied. Business rejections also arrive under this code with the reason in the message: 'NotFound' means the task does not exist, re-fetch via reply_list_my_tasks; 'CannotComplete' means the task is in a state from which it cannot be completed, e.g. already Finished or Cancelled, tell the user; 'Forbidden' means the workspace cannot complete this task, tell the user and do not retry); ServiceUnavailable (transient; retry once, then tell the user).
Enrolls a mailbox in email warm-up. Mutation. REQUIRES the exact numeric email account ID from a prior reply_list_email_accounts result. Do NOT invent it or ask the user for a numeric ID. On success the mailbox is added to warm-up. A freshly enrolled mailbox starts in a paused 'Disabled' state and must be switched on from the warm-up page in the app before it starts sending. Enrolling a mailbox already in warm-up succeeds and changes nothing (alreadyConnected=true). This tool never charges a card on its own: when the workspace has no free warm-up slot left and payment is required, it makes NO charge and returns PaymentRequired instead. Failure modes: InvalidArguments (EmailAccountId must be > 0); PaymentRequired (a paid warm-up slot is needed and no charge was made; tell the user to complete the warm-up purchase in the app, do not retry); ConnectFailed (the mailbox could not be enrolled; tell the user to set warm-up up in the app, do not blindly retry); ServiceUnavailable (transient; retry once, then tell the user).
Returns the in-app link where the user connects and authorizes a CRM or system integration in their own browser, plus whether an account of this type is already connected. LINK-OUT ONLY: this tool never accepts, requests, or transmits a login, password, or API key, and never performs the authorization itself; it only hands back the URL for the user to open. Present the link to the user and let them complete the connection. Identify the integration by its system-type name taken from a prior reply_list_integrations result. Failure modes: InvalidArguments (the integration name is empty or not a known system type; call reply_list_integrations to get valid names); ServiceUnavailable (transient; retry once, then tell the user).
Creates a custom call resolution (a workspace-wide call-outcome label). Mutation. Provide name and resolutionBucket ('positive', 'toCall' or 'negative') that the new resolution rolls up to. Names must be unique across all resolutions. The three system defaults cannot be duplicated. Failure modes: InvalidArguments (name must not be empty; resolutionBucket must be 'positive', 'toCall' or 'negative'); InvalidOperation (a resolution with this name already exists, or the settings service rejected the change; tell the user); Forbidden (workspace cannot change these settings; tell the user, do not retry); ServiceUnavailable (transient; retry once, then tell the user).
Creates a new contact in the workspace. Mutation. REQUIRES the contact's name: at least one of FirstName or LastName must be non-empty. If the user did not give a name, ask them for it ("What is the contact's full name?") BEFORE calling this tool; do not invent or default a name. REQUIRES at least one of Email or LinkedInUrl. Other fields are optional. Returns the newly created contact's full profile, including its numeric ID, which can be used in subsequent tool calls. Does NOT add the contact to any sequence; use a dedicated sequence-add tool for that. Does NOT validate or normalize phone / LinkedIn URL formats; pass them as the user provided. On workspaces with the Accounts feature enabled, a supplied Company (with optional Industry) is used to link the contact to a matching Account — found by company name and email domain, or created if none exists — instead of being stored on the contact directly; just pass the company name as Company. When the Accounts feature is off, Company and Industry are stored on the contact directly. Failure modes: InvalidArguments (FirstName or LastName must be non-empty, ask the user for the name; Email or LinkedInUrl is required; respect string length caps: Email 256, LinkedInUrl 512, names 128, Title/Industry/Phone 256, City 180, State 100, Country 90, TimeZoneId 90, Notes 512); InvalidInput (upstream rejected the payload after our checks; surface the message); Forbidden (workspace cannot create contacts; tell the user, do not retry); PERMISSION_DENIED (the user lacks permission to create Accounts, needed to link a new Company; surfaced as PERMISSION_DENIED on MCP and as a transient-looking error on other surfaces — either way do not retry, tell the user to use an existing company/Account or request the permission); ServiceUnavailable (transient; retry once, then tell the user).
Creates a new contact custom field for the workspace. Mutation. type must be 'text' or 'number'. The field is created workspace-wide for contacts. Failure modes: InvalidArguments (label must not be empty; type must be 'text' or 'number'); InvalidInput (the workspace rejected the field, e.g. an unsupported label format; tell the user); DuplicateName (a field with this label already exists; tell the user); LimitExceeded (the workspace hit its custom-field limit; tell the user); ServiceUnavailable (transient; retry once, then tell the user).
Creates a new AI SDR (Jason) knowledge base. Mutation. Name is required. Instructions is optional free text telling Jason how to use this knowledge when answering prospects. Add URL sources afterwards with reply_add_knowledge_base_source, then attach it to a sequence with reply_attach_knowledge_base_to_sequence. Failure modes: InvalidArguments (Name must be non-empty); Forbidden (the AI SDR feature is not enabled; tell the user, do not retry); Conflict (a knowledge base with this name already exists; choose another name); InvalidParameter (the content was rejected; the message explains why); UpstreamFailure (the AI SDR backend is temporarily unavailable; retry once, then tell the user); ServiceUnavailable (transient; retry once, then tell the user).
Creates a new AI SDR (Jason) offer that Jason can pitch. Mutation. Name is required; the other fields are optional and describe what Jason sells: company context, ideal customer profile (Icp), reason for outreach, and lists of case studies, pain points, proof points, value propositions, and calls to action. To draft these fields automatically from a company website, use reply_generate_offer_from_website first, then pass the results here. Failure modes: InvalidArguments (Name must be non-empty); Forbidden (the AI SDR feature is not enabled; tell the user, do not retry); InvalidParameter (the offer content was rejected; the message explains why); UpstreamFailure (the AI SDR backend is temporarily unavailable; retry once, then tell the user); ServiceUnavailable (transient; retry once, then tell the user).
Creates a new AI SDR (Jason) playbook: a named set of selling instructions. Mutation. Name and Description are short labels; Body is the actual instruction text (the prompt) that tells Jason how to sell. Visibility controls who can use it: 'Team' (default) or 'Organization'. Global playbooks cannot be created here. Failure modes: InvalidArguments (Name, Description, and Body must be non-empty; Visibility must be 'Team' or 'Organization'; the Body must not contain unrecognized personalization variables, the message lists them); Forbidden (the AI SDR feature is not enabled, or you lack permission to create organization playbooks; tell the user, do not retry); UpstreamFailure (the AI SDR backend is temporarily unavailable; retry once, then tell the user); ServiceUnavailable (transient; retry once, then tell the user).
Adds a reengagement card to an AI SDR (Jason) knowledge base so Jason knows how to win back a prospect who went quiet. Mutation. Name is a short label; Instructions tells Jason how to re-engage; SendAfter is the number of days after the last contact before Jason reaches out. SampleAnswer, ToneOfVoice, ResponseLength, and link URLs are optional. ToneOfVoice (case-insensitive): 'Confident', 'Persuasive', 'Witty', 'Straightforward', 'Empathetic'. ResponseLength (case-insensitive): 'SuperShort', 'Short', 'Medium', 'Long'. IsEnabled turns the card on (default on); DeliveryMode (case-insensitive): 'Draft' (Jason drafts the message for a human to review), 'Auto' (Jason sends automatically without review), defaults to Draft. REQUIRES the exact numeric knowledge base ID from a prior reply_list_knowledge_bases result. Never invent, estimate, default, or ask the user for this value. Failure modes: InvalidArguments (KnowledgeBaseId must be > 0; Name and Instructions must be non-empty; SendAfter must be >= 0; ToneOfVoice and ResponseLength must be allowed values); Forbidden (the AI SDR feature is not enabled; tell the user, do not retry); NotFound (no knowledge base with this id; re-fetch via reply_list_knowledge_bases); Conflict (the SendAfter window overlaps an existing reengagement card in this knowledge base; pick a different SendAfter value); InvalidParameter (the content was rejected; the message explains why); UpstreamFailure (the AI SDR backend is temporarily unavailable; retry once, then tell the user); ServiceUnavailable (transient; retry once, then tell the user).
Adds a reply handler to an AI SDR (Jason) knowledge base so Jason knows how to answer a specific kind of prospect question. Mutation. TypeOfQuestion is the kind of question it covers (for example 'Pricing' or 'Security'); Instructions tells Jason how to respond. SampleAnswer, ToneOfVoice, ResponseLength, and link URLs are optional. ToneOfVoice (case-insensitive): 'Confident', 'Persuasive', 'Witty', 'Straightforward', 'Empathetic'. ResponseLength (case-insensitive): 'SuperShort', 'Short', 'Medium', 'Long'. DeliveryMode (case-insensitive): 'Draft' (Jason drafts the answer for a human to review), 'Auto' (Jason sends automatically without review), 'StopAndNotify' (Jason does not reply — it pauses the contact and emails a rep); defaults to Draft. AdditionalNotificationEmail (only for StopAndNotify): by default the alert goes to the account used to reach the prospect (the sending email account, or the LinkedIn account for LinkedIn steps), and this address is notified in addition to it. REQUIRES the exact numeric knowledge base ID from a prior reply_list_knowledge_bases result. Never invent, estimate, default, or ask the user for this value. Failure modes: InvalidArguments (KnowledgeBaseId must be > 0; TypeOfQuestion and Instructions must be non-empty; ToneOfVoice and ResponseLength must be allowed values; AdditionalNotificationEmail must be a valid email); Forbidden (the AI SDR feature is not enabled; tell the user, do not retry); NotFound (no knowledge base with this id; re-fetch via reply_list_knowledge_bases); InvalidParameter (the content was rejected; the message explains why); UpstreamFailure (the AI SDR backend is temporarily unavailable; retry once, then tell the user); ServiceUnavailable (transient; retry once, then tell the user).
Creates a new sending schedule with its per-weekday time windows. Mutation. timezoneId is an IANA timezone like 'America/New_York'. Each weekday timing has an active flag and time ranges (hour 0-23, minute 0-59). Set useFollowUpSchedule=true only if you also provide followUpTimings. Failure modes: InvalidArguments (name and timezoneId must not be empty; time ranges must be valid); DuplicateName (a schedule with this name exists; tell the user); Forbidden (workspace cannot create schedules; tell the user, do not retry); ServiceUnavailable (transient; retry once, then tell the user).
Creates a new task (ToDo / Call / Meeting / LinkedIn / ManualEmail / Sms / WhatsApp) for the user. Mutation. REQUIRES TaskType, StartAt, DueTo, Subject, and Body. If TaskType is 'LinkedIn', LinkedInTaskType is required ('Message', 'Connect', 'InMail', 'ViewProfile'). ContactId, if supplied, must come from prior tool output. Never invent, estimate, default, or ask the user. Does NOT schedule the task inside a sequence; this is a standalone (manual) task. Failure modes: InvalidArguments (TaskType and LinkedInTaskType must be from the allowed sets; Subject non-empty and <= 1024 chars; Body non-empty and <= 32000 chars; StartAt must be <= DueTo; ContactId > 0 if set; LinkedInTaskType required when TaskType is LinkedIn. Business rejections also arrive under this code with the reason in the message: 'InvalidInput' means V3 rejected the create payload; 'InvalidDates' means V3 rejected the date window, e.g. dates in the past; 'ContactNotAccessible' means the contact does not exist or this workspace cannot see it, re-fetch via reply_search_contacts; 'RenderError' means the Subject/Body template failed to render, check for stray placeholders; 'Forbidden' means the workspace cannot create tasks, tell the user and do not retry); ServiceUnavailable (transient; retry once, then tell the user).
Deletes a custom call resolution. Mutation, irreversible. REQUIRES the exact numeric resolution ID from a prior reply_list_call_resolutions result. Do NOT invent it or ask the user for a numeric ID. System default resolutions (Positive, To Call, Negative) cannot be deleted. Failure modes: InvalidArguments (ResolutionId must be > 0; there is no custom resolution with this ID (re-fetch via reply_list_call_resolutions); or the resolution is a system default and cannot be deleted); Forbidden (workspace cannot change these settings; tell the user, do not retry); ServiceUnavailable (transient, or the settings service could not complete the change; retry once, then tell the user).
Permanently removes a contact custom field and its data across all contacts. Mutation, irreversible. REQUIRES the exact numeric field ID from a prior reply_list_contact_custom_fields result. Do NOT invent it or ask the user for a numeric ID. Failure modes: InvalidArguments (FieldId must be > 0); NotFound (the field does not exist; re-fetch via reply_list_contact_custom_fields); Forbidden (workspace cannot delete custom fields; tell the user, do not retry); ServiceUnavailable (transient; retry once, then tell the user).
Permanently removes an email account (mailbox) from the workspace. Mutation, irreversible. REQUIRES the exact numeric email account ID from a prior reply_list_email_accounts result. Do NOT invent it or ask the user for a numeric ID. Failure modes: InvalidArguments (EmailAccountId must be > 0); NotFound (the mailbox does not exist; re-fetch via reply_list_email_accounts); Forbidden (workspace cannot delete this mailbox; tell the user, do not retry); ServiceUnavailable (transient; retry once, then tell the user).
Removes a URL source from an AI SDR (Jason) knowledge base. Mutation. REQUIRES the exact numeric knowledge base ID and the source id, both from a prior reply_get_knowledge_base result. Never invent, estimate, default, or ask the user for these values. Failure modes: InvalidArguments (KnowledgeBaseId must be > 0; SourceId must be a valid source id from reply_get_knowledge_base); Forbidden (the AI SDR feature is not enabled; tell the user, do not retry); NotFound (the knowledge base or source does not exist; re-fetch via reply_get_knowledge_base); UpstreamFailure (the AI SDR backend is temporarily unavailable; retry once, then tell the user); ServiceUnavailable (transient; retry once, then tell the user).
Removes a reengagement card from an AI SDR (Jason) knowledge base. Mutation. REQUIRES the exact numeric knowledge base ID (from reply_list_knowledge_bases) and the exact reengagement card id (from reply_list_reengagement_cards). Never invent, estimate, default, or ask the user for these values. Failure modes: InvalidArguments (KnowledgeBaseId must be > 0; ReengagementCardId must be a valid id from reply_list_reengagement_cards); Forbidden (the AI SDR feature is not enabled; tell the user, do not retry); NotFound (the knowledge base or reengagement card does not exist; re-fetch via reply_list_reengagement_cards); UpstreamFailure (the AI SDR backend is temporarily unavailable; retry once, then tell the user); ServiceUnavailable (transient; retry once, then tell the user).
Removes a reply handler from an AI SDR (Jason) knowledge base. Mutation. REQUIRES the exact numeric knowledge base ID (from reply_list_knowledge_bases) and the exact reply handler id (from reply_list_reply_handlers). Never invent, estimate, default, or ask the user for these values. Failure modes: InvalidArguments (KnowledgeBaseId must be > 0; ReplyHandlerId must be a valid id from reply_list_reply_handlers); Forbidden (the AI SDR feature is not enabled; tell the user, do not retry); NotFound (the knowledge base or reply handler does not exist; re-fetch via reply_list_reply_handlers); UpstreamFailure (the AI SDR backend is temporarily unavailable; retry once, then tell the user); ServiceUnavailable (transient; retry once, then tell the user).
Permanently removes a sending schedule. Mutation, irreversible. REQUIRES the exact numeric schedule ID from a prior reply_list_schedules result. Do NOT invent it or ask the user for a numeric ID. Fails if the schedule is the default or is still used by a sequence. Failure modes: InvalidArguments (ScheduleId must be > 0); NotFound (the schedule does not exist; re-fetch via reply_list_schedules); DeleteRejected (the schedule is the default or is in use; reassign or set another default first); Forbidden (workspace cannot delete this schedule; tell the user, do not retry); ServiceUnavailable (transient; retry once, then tell the user).
Permanently deletes an automation trigger. Mutation, irreversible. REQUIRES the exact trigger ID (a GUID) from a prior reply_list_triggers result. Do NOT invent it or ask the user for an ID. Failure modes: InvalidArguments (TriggerId must be a valid GUID); NotFound (the trigger does not exist; re-fetch via reply_list_triggers); ServiceUnavailable (transient; retry once, then tell the user).
Explains WHY a Reply.io entity is not sending or not making progress, and WHICH settings the user should change to fix it. Use this when the caller asks things like "why isn't my sequence sending", "why did emails stop", "what's wrong with this sequence", "why aren't messages going out". Returns an overall status ('Healthy', 'Degraded', 'Blocked'), a primary blocking reason, and a list of findings; each finding carries a recommended action code and a plain-language fix. EntityType currently supports only 'sequence'. EntityId is the entity's numeric ID passed as a string. Do NOT guess, fabricate, or estimate it. For a sequence, obtain the ID from a prior reply_search_sequences result; do NOT ask the user for a numeric ID, users do not know internal IDs. Findings cover the last 30 days of activity plus the current status; some reasons are intentionally generalized for deliverability safety. Failure modes: InvalidArguments (EntityType is not a supported value, or EntityId is empty or over 64 characters; fix the call); InvalidEntityId (EntityId is not a valid id for that entity type); NotFound (the entity does not exist or is not in your workspace); Forbidden (delivery diagnostics is not enabled for your team, or you lack access to the entity); ServiceUnavailable (transient backend failure; retry once, then tell the user).
Removes a mailbox from email warm-up and stops warming it. Mutation. REQUIRES the exact numeric email account ID from a prior reply_list_email_accounts result. Do NOT invent it or ask the user for a numeric ID. Failure modes: InvalidArguments (EmailAccountId must be > 0); NotFound (the mailbox is not currently in warm-up, so there is nothing to disconnect; treat as already disconnected); PaymentRequired (a billing change must be confirmed and no change was made; tell the user to complete it in the app, do not retry); ServiceUnavailable (transient; retry once, then tell the user).
Disconnects the connected meeting account for one provider: 'googleCalendar' clears the Google Calendar connection, 'calendly' revokes the Calendly OAuth connection. Mutation, irreversible: reconnecting requires the user to re-run the provider OAuth flow in Reply. Failure modes: InvalidArguments (provider must be exactly 'googleCalendar' or 'calendly'); InvalidOperation (the meetings service could not disconnect the account; retry once, then tell the user); ServiceUnavailable (transient; retry once, then tell the user).
Duplicates an existing AI SDR (Jason) playbook into a new one with the same description and instruction Body. Mutation. Use this when the user wants a copy of a playbook to tweak. The copy is named '<original> (copy)' unless you pass NewName. Visibility of the copy defaults to the original's (Team or Organization); a Global playbook is copied as Team since Global playbooks cannot be created. Pass Visibility to override ('Team' or 'Organization'). Style files are NOT copied. REQUIRES the exact playbook ID from a prior reply_list_playbooks result. Never invent, estimate, default, or ask the user for this value. Failure modes: InvalidArguments (PlaybookId must be non-empty; Visibility must be 'Team' or 'Organization' when provided; the original Body must not contain unrecognized personalization variables, the message lists them); Forbidden (the AI SDR feature is not enabled, or you lack permission to create organization playbooks; tell the user, do not retry); NotFound (no playbook with this id; re-fetch via reply_list_playbooks); InvalidIdFormat (the id is malformed; re-fetch via reply_list_playbooks); UpstreamFailure (the AI SDR backend is temporarily unavailable; retry once, then tell the user); ServiceUnavailable (transient; retry once, then tell the user).
Lists contacts narrowed by list membership, sequence membership and/or a free-text search term applied to name/email/company. Use this when the caller asks for contacts "in list X", "in sequence Y", or matching some text. Numeric IDs (ListId, SequenceId) MUST come from prior tool output: call reply_search_lists to resolve a list name to ListId, reply_search_sequences for SequenceId. Do NOT guess, fabricate, or estimate IDs. Do NOT ask the user for numeric IDs; users do not know internal IDs. When summarising results to the user, refer to the list or sequence by the Name you resolved via reply_search_lists / reply_search_sequences, not by its numeric ID. Does NOT accept rule-based property/condition filters (those require a separate tool). For exact email or LinkedIn URL lookups, call reply_search_contacts instead. A ListId or SequenceId that does not exist produces an empty page, not an error: if you expected matches, re-resolve the ID via reply_search_lists / reply_search_sequences. Failure modes: InvalidArguments (IDs must be > 0; SearchTerm capped at 512 chars); Forbidden (workspace cannot read contacts; tell the user, do not retry); ServiceUnavailable (transient; retry once, then tell the user).
Asks Jason to draft offer content from a company website URL (and optional extra notes). Returns suggested fields (company name and description, ICP, reason for outreach, value propositions, proof points, etc.) for the user to review. Does NOT save anything: to persist the result, review it with the user and then call reply_create_offer with the chosen fields. If ReusedOfferId is set, an existing offer already matches this content and can be used as-is instead of creating a new one. Failure modes: InvalidArguments (Url must be non-empty; Provider, if set, must be 'Claude', 'OpenAi', 'Gemini', or 'Mistral'); Forbidden (the AI SDR feature is not enabled; tell the user, do not retry); ServiceUnavailable (generation failed or the backend is unavailable; retry once, then tell the user).
Returns the workspace Accounts-feature enrichment settings: whether accounts are auto-enriched when a domain is entered, and whether enrichment overwrites existing field values. Applies to the Accounts feature (company records), not individual contacts. Does NOT change anything; to update use reply_update_accounts_enrichment_settings. Failure modes: NotFound (settings unavailable for this workspace; tell the user); Forbidden (workspace cannot read settings; tell the user, do not retry); InvalidOperation (the settings service could not complete the read; retry once, then tell the user); ServiceUnavailable (transient; retry once, then tell the user).
Returns the catalog of Reply.io app areas: each entry has a title, a short description, the exact in-app navigation steps, and a relative URL. Use this when the user asks where something is in the app, how to set up or find a feature, or about functionality no other tool covers; call it BEFORE refusing or describing the UI from memory. When the matching entry has a relativeUrl, give the user a direct link by rendering the entry title as a markdown link to it (e.g. '[Email accounts](/settings/email-accounts)'); use the URL exactly as returned, never construct or alter URLs yourself. Entries also state what the chat can already do in that area; when an entry lists a chat capability matching the user's request, use the dedicated tools instead of sending the user to the UI. Does NOT answer workspace-data questions (counts, statuses, contents); those come only from the dedicated tools. Failure modes: ServiceUnavailable (transient; retry once, then tell the user the system is temporarily offline). This tool takes no parameters and reads a static catalog, so InvalidArguments and Forbidden are not expected.
Returns the activity history for one contact: emails sent / opened / replied, LinkedIn actions, calls, manual events, ordered newest first. REQUIRES the exact numeric contact ID. Do NOT guess, fabricate, or estimate it. If only the email or LinkedIn URL is known, call reply_search_contacts first. Do NOT ask the user for a numeric contact ID; users do not know internal IDs. Paginated; iterate with Skip until HasMore is false. Does NOT include sequence-level performance metrics (use reply_get_sequence_stats for those). Failure modes: InvalidArguments (ContactId must be > 0); NotFound (the contact does not exist in this workspace; re-fetch via reply_search_contacts using the email/LinkedIn URL); Forbidden (workspace cannot read this contact; tell the user, do not retry); ServiceUnavailable (transient; retry once, then tell the user).
Returns the workspace contact enrichment mode: whether newly-enriched data overwrites existing contact field values ('overrideWithNew') or only fills empty ones ('keepExisting'). This is CONTACT-level enrichment, distinct from account/company enrichment (reply_get_accounts_enrichment_settings). Does NOT change anything; to update use reply_update_contact_enrichment_mode. Failure modes: NotFound (settings unavailable for this workspace; tell the user); Forbidden (workspace cannot read settings; tell the user, do not retry); InvalidOperation (the settings service could not complete the read; retry once, then tell the user); ServiceUnavailable (transient; retry once, then tell the user).
Returns the workspace contact-handling rules: whether replying pauses the contact in all sequences (and how: 'automatic' or 'byEmail'), whether a reply pauses all contacts from the same organization (and how), and whether contacts are left in a sequence when moved to another. Does NOT change anything; to update use reply_update_contact_handling_settings. Failure modes: NotFound (settings unavailable for this workspace; tell the user); Forbidden (workspace cannot read settings; tell the user, do not retry); InvalidOperation (the settings service could not complete the read; retry once, then tell the user); ServiceUnavailable (transient; retry once, then tell the user).
Returns full detail for one email account (mailbox) in a single call: connection info, safety limits, ramp-up, signature, opt-out, tags, and live sent-today counters. Prefer this over several narrow reads. REQUIRES the exact numeric email account ID from a prior reply_list_email_accounts result. Do NOT invent it or ask the user for a numeric ID. Does NOT change anything; to change a mailbox use the matching update tools for its settings, safety, signature, or opt-out. Failure modes: InvalidArguments (EmailAccountId must be > 0); NotFound (the mailbox does not exist; re-fetch via reply_list_email_accounts); Forbidden (workspace cannot read this mailbox; tell the user, do not retry); ServiceUnavailable (transient; retry once, then tell the user).
How do I improve a ChatGPT Plugin's discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
What are Reply.io alternatives on ChatGPT?
As of 2026-09-13, Reply.io competes with Outreach, Mixmax, Amplemarket, Instantly.ai, JobPhoning, Lightmeter, MimikFlow, OneUp Today, SalesBreaker GTM, Taverity, toflow.ai, FirstTouch, LinkupAPI in ChatGPT Sales Engagement & Outreach Automation, ranked by public Discoverability Score.
Where does Reply.io rank in Sales Engagement & Outreach Automation on ChatGPT?
As of 2026-09-13, Reply.io ranks #1 of 14 in ChatGPT Sales Engagement & Outreach Automation with a Discoverability Score of 9/100 (Invisible).
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.