- Brand
- CommSync
- Category
- Productivity
- Primary Subcategory
- Helpdesk & Ticketing Platforms
Integration details
Description
CommSync puts a team's business texting and email in one shared inbox: every phone line (Twilio, JustCall, Quo, RingCentral, Telnyx, and more) and every mailbox (Gmail, Outlook, any IMAP account), with contacts that tie a person's numbers and addresses together. Connect it to ChatGPT to search and read your SMS and email conversations, triage threads, reply by text or email, and keep contacts tidy, all from the lines you choose when you sign in. Access follows your role in your workspace, and you can disconnect at any time.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- Helpdesk & Ticketing Platforms
- Secondary Subcategories
- None listed
- Brand
- CommSync
- Access
- Account required
- First tracked
- 2026-10-08
- Tool count
- 206
- Market
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
Your score is coming
ChatGPT now suggests Plugins on its own when they match a user's request.Your Plugin Discovery Score measures how often yours appears, and it will show here as soon as it’s ready.
What discovery looks like

Get alerts for CommSync
Get updates when CommSync’s Discoverability Score or category rank changes.
Competing in ChatGPT Helpdesk & Ticketing Platforms
View Category206 tools agents can invoke
Turn one agent on. From then on it answers inbound messages on its lines by itself. In DRAFT mode it parks each reply for approval; in SUPERVISED or AUTO mode it sends replies to contacts with no person in the loop. The agent needs at least one line and instructions. A member, or a credential limited to some lines, can activate only an agent whose every line it holds.
activate_agent
Stop one agent from answering a phone number or an email address, on every line of the agent. People on the team can still write to that contact. A handle already on the list stays as it is (`created: false`). A member, or a credential limited to some lines, can change only the list of an agent whose every line it holds.
add_agent_opt_out
Add an IMAP/SMTP email account to the caller's org. Tests connectivity before persisting; password is encrypted at rest. Returns existing channel id when the address is already linked in the same org; when that account still waits on its history choice, this call makes the choice again. Returns a CONFLICT_OTHER_ORG result when the address is locked to a different workspace. A new account starts to sync at once. Set importHistoryDays to also import older mail (0 = all history); without it, only mail that arrives from now on syncs.
add_email_account
Add one document to the workspace's knowledge. CommSync reads its text in the background. Then agents and Ask can answer from it. Use a document with readable text: PDF, Word, a spreadsheet, plain text, Markdown, CSV, HTML, or an image (CommSync reads the text in it). A calendar file does not work. The file is at most 15 MB. Returns the new source with status PENDING. Call list_knowledge_sources later to see READY or ERROR. The embeddings draw on the workspace's AI credits. A workspace has at most 20 sources. To make an agent use the document, call set_agent_knowledge. Owners and admins can use this tool; a member can use it when the workspace lets members use agents. A credential limited to some lines cannot use it.
add_knowledge_file
Add a block of plain text to the workspace's knowledge, for example opening hours, a price list, or a return policy. CommSync stores it as a .txt document named after the title. So it acts like any uploaded document: list it with list_knowledge_sources, and remove it with delete_knowledge_source. To change the text, delete the source and add it again. Returns the new source with status PENDING. The text is at most 15 MB. The embeddings draw on the workspace's AI credits. A workspace has at most 20 sources. To make an agent use the text, call set_agent_knowledge. Owners and admins can use this tool; a member can use it when the workspace lets members use agents. A credential limited to some lines cannot use it.
add_knowledge_text
Add one checklist item to the caller's private note on one conversation. Creates the note when there is none. Returns the whole note.
add_note_item
Add a phone number that the user already has at an SMS provider to the caller's workspace. CommSync does not sell phone numbers. The workspace must first have a connected SMS provider account (Twilio, Skyetel, JustCall, Quo, RingCentral, or Telnyx), which the user connects in CommSync onboarding. With no account, the tool returns NO_SMS_PROVIDER_ACCOUNT, and its text is written for the user: pass it on as it is. A Twilio account imports its numbers automatically, so this tool does not add a Twilio number. With exactly one connected account, the tool uses it. With more than one, pass provider and the account id; PROVIDER_ACCOUNT_REQUIRED lists them. The add runs the same checks as Settings: no duplicate, one workspace per number, and the plan's line cap. Returns the existing line when the workspace already has the number, and CONFLICT_OTHER_ORG when another workspace holds it. A new line also starts the inbox classifier over its past senders.
add_phone_number
Add the goals and fields of a starter template to one agent. The templates: general (General), front_desk (Front desk), scheduling (Scheduling), billing (Billing questions), support (Support), sales (Sales leads). A goal or field whose key the agent already has stays as it is, and the add stops at the limits. Returns how many goals and fields it added. A member, or a credential limited to some lines, can reach only an agent whose every line it holds.
apply_agent_analysis_template
Send an agent reply that waits for approval, to the contact, from the agent's line. Pass `body` (and `subject` for email) to send an edited version; the agent's draft stays on record. A text has at most 1,600 characters and an email at most 20,000. CommSync checks the contact's opt-out and any takeover of the thread again before it sends. Only one approval of a reply can win. Owners and admins only. To retry a call safely, pass the same `idempotencyKey`: a repeat returns the first message with `deduplicated: true` and sends nothing.
approve_agent_reply
Archive a thread for the caller. It leaves Spam, Promotions, and Automated. Teammates are not affected. On a Google sign-in line, the thread is also archived in Gmail.
archive_thread
Assign a label to a contact (personId) or an identity (identityId). Provide exactly one target.
assign_label
Attach a channel (identity) with no contact to an existing contact. Its conversations join the contact.
attach_identity_to_contact
Stop a scheduled send (status SCHEDULED) before it goes out. The message stays on the thread with status FAILED and the reason "Cancelled before send"; resend_failed_message sends it now. A send that is already going out cannot stop.
cancel_scheduled_message
OWNER only, with a credential that has access to all channels. Swap the org subscription to a new tier. Prorates immediately via Stripe and reflects the change back on the org via webhook. Returns the live billing state after the call.
change_tier
Enqueue an inbox-classifier backfill across the caller’s historical mail. Classifies each not-yet-classified sending identity as PROMOTIONS / SPAM / NORMAL and auto-files its threads into the per-user Spam / Promotions buckets — one classification per sender, since the verdict applies to all of that sender’s threads. `unclassifiedSenders` is the upper bound the chain will scan. Completion is stamped on `inboxBackfillCompletedAt` in the AI settings when the last batch finishes. Senders the user has replied to, already filed by hand, or already classified are skipped. A key or app that is limited to some lines cannot use this tool: it files threads on every line.
trigger_inbox_backfill
Fix the captured value of one field of one conversation. The judge's value stays; the correction counts in its place in the filters and the export. The value must fit the field type (a number, true or false, YYYY-MM-DD, YYYY-MM-DDTHH:mm, one of the choices, an email address, a phone number, { amount, currency }, or a list of text); a value that does not fit is refused (BAD_INPUT). Pass `value: null` to clear the correction. A credential limited to some lines cannot correct a field marked sensitive. Returns the conversation. A member, or a credential limited to some lines, can reach only an agent whose every line it holds.
correct_agent_field_value
Overturn the judge's result for one goal of one conversation. The judge's answer stays; the correction counts in its place in the success score, the filters, and the review flag. A scored goal can take a `score` (1 to 5); then 4 or 5 is MET and the rest is NOT_MET, whatever `result` says. A score on a pass-or-fail goal is refused (BAD_INPUT). Pass `result: null` to clear the correction. Returns the conversation. A member, or a credential limited to some lines, can reach only an agent whose every line it holds.
correct_agent_goal_result
Create a CommSync Agent: an AI teammate that answers inbound texts and email on its lines. The new agent has status DRAFT and no lines, so it answers nothing yet. It starts with analysis on and the goals and fields of an analysis template (General unless you pass templateKey). Next, attach lines with set_agent_lines, then turn it on with activate_agent. Returns the full setup of the agent. The plan of the workspace caps the number of agents (AGENT_CAP). A credential limited to some lines cannot create an agent. draft_agent can write a first version of every field from a description.
create_agent
Add an alert to one agent. An alert checks each analyzed conversation of the agent, and checks it again after a person corrects a result. The kinds: CRITICAL_GOAL_NOT_MET: a goal is not met in a conversation (`goalId` null means any critical goal). GOAL_RATE_BELOW: the met rate of a goal over the last `windowConversations` analyzed conversations (10 to 500) falls below `thresholdPercent` (1 to 99); give `goalId` too. FIELD_MATCHES: a captured detail matches `fieldOperator` and `fieldValue`; give `fieldId` too. The operators: EQUALS, NOT_EQUALS, CONTAINS, GREATER_THAN, LESS_THAN, IS_TRUE, IS_FALSE (the last two take no value). The parts of the other kinds are cleared. Read goal and field ids with get_agent_analysis. An alert notifies the owners and admins of the workspace by push, and by email when `email` is true. It never contacts a contact. One conversation fires one alert once, even after a re-run or a correction. The conversation also goes on the Review page with the reason. An agent has at most 20 alerts (ALERT_CAP). Returns the alert. A member, or a credential limited to some lines, can reach only an agent whose every line it holds.
create_agent_alert
Add a field to one agent. A field is a detail to capture from a conversation. Give `name`, `description` (what to capture), and `type`: TEXT, NUMBER, INTEGER, BOOLEAN, DATE, DATETIME, CHOICE (with at least two `choices`), EMAIL, PHONE, MONEY (with a three-letter `currency`, default USD), or TEXT_LIST. Optional: `key`, `examples`, `scope`, `sensitive` (left out of webhooks and of credentials limited to some lines), and `enabled`. A value of the wrong type, or one that looks like a code or a password, stays empty. A key that the agent already has is refused (KEY_TAKEN). Saving runs nothing and spends nothing; try a draft field first with try_agent_analysis. A member, or a credential limited to some lines, can reach only an agent whose every line it holds.
create_agent_field
Add a goal to one agent. A goal is a question that a model answers after a conversation ends. Give `name` and `description` (what success means; the model reads it as the question). Optional: `key` (lower snake case, stable for the API and the webhook; made from the name when left out), `scoring` (PASS_FAIL, or SCORE_1_5 with five `levels`, 1 first), `passExample` and `failExample`, `scope` (CONVERSATION, or AGENT_PART: only the part where this agent answered), `useKnowledge` (the judge also reads what the agent read, to catch an invented fact), `weight` (1 to 5, for the success score), `critical`, `channels` (SMS, EMAIL, or both), `appliesWhen` (when set, the model first decides if the goal applies; if not, the result is NOT_APPLICABLE and the goal stays out of the rates), and `enabled`. A key that the agent already has is refused (KEY_TAKEN). Saving runs nothing and spends nothing; try a draft goal first with try_agent_analysis. A member, or a credential limited to some lines, can reach only an agent whose every line it holds.
create_agent_goal
Save a test for one agent. A test is a conversation plus what passes. NEXT_REPLY: the agent answers the last message and must take `path` (REPLY, HAND_OFF, or NO_REPLY); for REPLY, a model judges the reply against `criteria`, with an optional `goodExample` and `badExample`. TOOL_CALL: the agent must call `tool` (a webhook tool name, mcp_<server>_<tool>, or search_knowledge); each of `inputs` checks one input as EXACT (the same text), PATTERN (a JavaScript regular expression of at most 200 characters, with no back reference and no repeated group that holds a repeat or a choice), or DESCRIBE (a model judges the value against the description). A dotted input name reads into an object. SIMULATION: a model plays the contact that `contact` describes, the agent answers up to `maxTurns` times (1 to 10, default 5), and a model judges whether the conversation reached `goal`. Give `conversation` to type the conversation, or `fromConversation` to copy a real one as it stood at one incoming message; the result then also holds `sentReply`, the reply that was really sent after that message, if any. Saving runs nothing and spends nothing. Run the test with run_agent_tests. An agent has at most 50 tests. A member, or a credential limited to some lines, can change only an agent whose every line it holds.
create_agent_test
Create a contact with a name and optional notes. It has no channels and no conversation yet: attach_identity_to_contact adds a channel, and the first message makes a conversation.
create_contact
Create a new label with a name and hex color (e.g. "#F97316").
create_label
Add a to-do to Home. Give threadId to tie it to a conversation the caller can open, or omit it for a to-do with no conversation. On one conversation, a to-do title must be unique.
create_todo
Delete one MCP connection and its stored credentials. Every agent that uses it loses its tools at once, and Ask stops using it. This cannot be undone: to use the server again, add it again and sign in again. A credential limited to some lines cannot use this tool.
delete_mcp_connection
Delete one agent for good. It stops answering on every line at once, and its activity, memories, and opt-out list go with it. Messages it already sent stay in their threads. You cannot undo this; to stop an agent for a while, use pause_agent. A member can delete only an agent whose every line they hold. A credential limited to some lines cannot delete an agent.
delete_agent
Delete one alert for good, with the record of when it fired. You cannot undo it. To stop an alert and keep it, set `enabled` to false with update_agent_alert. A member, or a credential limited to some lines, can reach only an agent whose every line it holds.
delete_agent_alert
Delete one field for good, with every value it captured. You cannot undo it. To stop a field and keep its values, set `enabled` to false with update_agent_field. A member, or a credential limited to some lines, can reach only an agent whose every line it holds.
delete_agent_field
Delete one goal for good, with every result it gave. You cannot undo it. To stop a goal and keep its results, set `enabled` to false with update_agent_goal. A member, or a credential limited to some lines, can reach only an agent whose every line it holds.
delete_agent_goal
Delete what one agent remembers about one contact. The agent answers that contact next time with no summary, and starts a new one. Use it when the memory is wrong or out of date. You cannot undo this. A member, or a credential limited to some lines, can delete only a memory of an agent whose every line it holds.
delete_agent_memory
Delete one saved test for good. You cannot undo it. Past runs keep their results under the test name. A member, or a credential limited to some lines, can change only an agent whose every line it holds.
delete_agent_test
Delete one comment. The text is removed for good; the discussion keeps a "deleted" marker. The author can delete their own comment. A conversation manager can delete any comment on the conversation; on a contact-level discussion, only the contact owner or an org OWNER or ADMIN can delete the comment of another author.
delete_comment
Delete a contact that the caller owns. Each of its channels first becomes its own unnamed contact again, with its own conversation; messages and threads stay. If one channel cannot be detached, the delete stops and the contact stays.
delete_contact
Delete one draft of the caller. The draft text is gone for good. Its attachments stay unlinked and are removed later if no message uses them.
delete_draft
Delete a mailbox from the workspace. OWNER or ADMIN, or the member who connected the mailbox. The messages and conversations of the mailbox stay. For a mailbox connected with Sign in with Google, CommSync also revokes the grant at Google.
delete_email_account
Delete one knowledge source for good: the stored file, the crawled pages, and the search index. Every agent that used it stops answering from it at once. You cannot undo it. To get it back, add the file or the website again. Owners and admins can use this tool; a member can use it when the workspace lets members use agents. A credential limited to some lines cannot use it.
delete_knowledge_source
Delete a label. This removes the label from all contacts and identities.
delete_label
Delete one checklist item from the caller's private note on one conversation. Returns the whole note.
delete_note_item
Delete a phone number from the workspace. OWNER or ADMIN only. The messages and conversations of the number stay. For a Twilio number, CommSync also removes its SMS webhook and voice settings at Twilio, where they still point at CommSync.
delete_phone_number
Delete a webhook endpoint and its delivery history. IRREVERSIBLE. Pending retries for this endpoint will no-op.
delete_webhook
Delete one webhook tool for good, with its stored secrets. Every agent that carries it loses it at once. You cannot undo it. Owners and admins can use this tool; a member can use it when the workspace lets members use agents. A credential limited to some lines cannot use it.
delete_webhook_tool
Mark a daily digest as dismissed.
dismiss_digest
Take one conversation off both waiting lists of Home ("Mark completed" or "Stop waiting on this"). A newer message puts it back. Only Home changes: the inbox and the conversation stay the same. dismissed=false puts it back now.
dismiss_waiting
Get the bytes of one attachment as base64, for a file of 5 MB or less. A larger file answers FILE_TOO_LARGE with its size; read its text with get_attachment instead.
download_attachment
Write a first version of an agent's standing orders from a name, a role, and a short brief. It saves nothing: pass the text to create_agent or update_agent. Each call spends a small amount of the workspace's AI credits, and fails with AI_BUDGET when the credits are gone. At most 10 calls a minute (RATE_LIMITED).
draft_agent_instructions
Run a batch of test cases against one agent and check each result. Each case is a real conversation or a typed one, optional tool mocks, and what a pass means: the outcome, what happens to the reply, texts the reply must or must not contain, and tools the agent must or must not call. Returns passed and failed counts, and for each case the failed checks and the full test result. At most 10 cases per call. Each case is one dry run: nothing is sent, and each spends AI credits like a real reply.
evaluate_agent
Export the conversations that match the filters as CSV text, at most 1000 rows: the times, the agents, the channels, the contact, the outcome in words, the success score, the mood, the frustration, the counts, the reply time, the edit rate, the cost, the review flag, the mean rating, and one column per goal ("<agent>: <goal>", the result words plus "(n/5)" when scored) and per field ("<agent>: <field>"). Corrections count. Fields marked sensitive stay out unless `includeSensitive` is true, which only an owner or admin on a credential with every line can ask for. Filters (all optional, all must match): agentIds, lineIds (mailbox or number ids of its threads), channels (SMS, EMAIL), from and to (ISO 8601, on the start), status (OPEN, ENDED), outcomes, analysis (DONE, NONE, PENDING, FAILED), successMin and successMax (0 to 100), goals (each { goalId, results: [MET | NOT_MET | UNKNOWN | NOT_APPLICABLE], corrected? }; a person’s correction counts in place of the judge), fields (each { fieldId, op: eq | neq | gt | gte | lt | lte | between | in | contains | empty | not_empty, value | values | min and max }; dates are YYYY-MM-DD), moods, frustrationMin, toolsUsed (tool names), toolErrored, takenOver, editedBeforeApproval (a person changed more than 5 percent of a draft), heldBySafety, optedOut, rated, ratingMin and ratingMax, hasNote, needsReview (a critical goal not met, a thumbs down, a fired alert about a goal not met, or a reply the agent flagged for a look, and not marked reviewed), reviewed, costMin and costMax (USD), messagesMin and messagesMax (messages from the contact), search (contact, title, or summary), and topicId (the nightly topic id, from list_agent_topics). Read goal and field ids with get_agent_analysis.
export_agent_conversations
Forward a message to a new recipient. The source thread must be visible to the caller. A forward to email starts a new thread on the mailbox of the source message (or the first mailbox this credential can use) and carries the source files unless includeAttachments is false. A forward to SMS carries the text only. CommSync accepts the send and owns delivery from there, including provider rate limits: it paces, backs off, and retries, so this tool does not return a 429. The response carries `state` and `estimatedSendAt`. A `state` of "waiting_on_line" means the message is queued and goes out on its own. Each call without an `idempotencyKey` sends a new message. To retry a call safely, pass the same `idempotencyKey`: a repeat returns the first message with `deduplicated: true` and sends nothing.
forward_message
Manually trigger a daily digest generation for today or a specific date (at most 90 days back). A key or app that is limited to some lines cannot use this tool: the digest reads every line.
trigger_digest_run
CommSync ChatGPT Plugin FAQ
How the directory, categories and Discoverability Score work.
Read the methodologyHow do I improve CommSync's ChatGPT Plugin 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 CommSync alternatives on ChatGPT?
As of 2026-11-04, CommSync competes with AntBuddy, Asking, Drag, EasyReply, Front, FyneDesk, Gleap, Gorgias and 12 more in ChatGPT Helpdesk & Ticketing Platforms, ranked by public Discoverability Score.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.


