- Brand
- Quo
- Category
- Customer Support
- Primary Subcategory
- Conversation & Revenue Intelligence
Integration details
Description
Quo is a next-generation business phone system that helps teams engage customers, collaborate internally, and scale communication with AI — without losing the personal touch. Connecting Quo gives ChatGPT access to your customer conversations across calls, text messages, and contacts. You can ask questions about those interactions to uncover patterns in what customers are saying and where opportunities may be lost. ChatGPT can search, analyze, and summarize conversations to surface insights like Why are we losing deals? What do customers love about our service? What complaints show up most often?
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- Conversation & Revenue Intelligence
- Secondary Subcategories
- None listed
- Brand
- Quo
- Access
- Account required
- First tracked
- 2026-09-17
- Tool count
- 34
- Market
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
Your Plugin is no longer discoverable
We previously found Quo discoverable in ChatGPT, but ChatGPT is no longer surfacing it.Add your email below and we’ll let you know when your Plugin becomes discoverable again, and send you alerts about it.
No spam. Unsubscribe any time.
What discovery looks like

Competing in ChatGPT Conversation & Revenue Intelligence
View Category34 tools agents can invoke
Talk to Sona, your Quo agent that knows your business. Sona keeps the workspace's business knowledge: the one document every Quo AI agent in the workspace, including the one that answers new leads, reads to know what the business does, its services and prices, hours, service area, policies and FAQs. Use this tool whenever the user wants to check or change what Quo's AI agents know about their business, or gives feedback on how an agent described it (e.g. "we don't open on Sundays anymore", "the agent quoted the wrong price for a haircut", "add our new gift cards"). Sona asks follow-up questions and keeps the knowledge to business information only, about one business, in the standard sections, with no invented prices or policies. It saves nothing until the user approves its draft. Only workspace admins and owners can use it. One conversation spans several calls, and each call does exactly one of these: - Start: message, and no interviewId. Opens a NEW conversation and returns its interviewId. Start once per topic. - Send: interviewId and message. Sends the user's next message in that conversation. Pass the same interviewId on every follow-up; leaving it out starts a second conversation. - Get: interviewId, and no message. With the messageId from a response that said Sona is still working, gets that turn (never resend the message instead); without one, gets the conversation's latest turn. Never make up an interviewId or messageId: copy them from this tool's responses. Sona leads the conversation. Relay Sona's messages to the user verbatim, pass on only what the user actually said, and never answer Sona's questions or invent business details yourself. When Sona proposes a draft, Quo shows the user the draft and its new or changed prices and policies and saves only if they approve; where Quo cannot ask them directly, this returns the draft and a toolCallId for decide-knowledge-save. Sona's tools are in beta: tell the user so if they ask, or when a result falls short of what they expected. When the user comments on how Sona or this tool performed (for example, Sona misunderstood, missed the goal or sounded unnatural), offer to send it to the Quo team with submit-feedback, including the ID of the Sona run or knowledge interview so the team can find it. Corrections to the business's own details, such as a wrong price or outdated hours, go to ask-knowledge-agent instead.
Cancel a Sona call started with start-agent-call, hanging up if it is in progress. A call that already ended is returned unchanged.
Stop a Sona SMS conversation started with start-agent-conversation. Sona stops texting; texts already sent stay sent. One that already ended is returned unchanged.
Create this Quo workspace's A2P 10DLC carrier registration as a DRAFT. A workspace has one registration, covering its numbers. Creating the draft is free and sends nothing to carriers: nothing is billed until submit-a2p-registration. Every field is required (alternateName, address.line2, ticker and exchange may be null), so collect the real values from the user rather than guessing: carriers check the business against its tax registration, and mismatches get it rejected. Before asking for the fields one by one, offer to read them from a document: the user can share their business registration in the chat, such as the IRS EIN letter (CP 575 or 147C), articles of incorporation or organization, a state business registration, or a Canadian business number confirmation. It is optional, so ask for the details directly if they would rather not. From a document, take only what it shows: usually the legal name, legal structure (businessType), tax ID type and number, and registered address. Show the user what you read and have them confirm it, then ask for whatever the document does not cover, such as the website, industry, employee count, call volume, regions, contact person and message types. Never fill a field the document does not show and the user has not given. ticker and exchange are required for Public companies. After creation, Quo writes the messaging details carriers vet in the background; before submitting, review the business details with the user via get-a2p-registration. Quo writes the messaging details carriers review (the description, sample messages and opt-in flow) for the user, from the business details and messageTypes, in the form carriers look for, to improve the chance of approval. They are not returned by these tools, so there is nothing to review or edit; only the use case is shown. Present this as a feature that handles the hardest part of registration for them, not as a limitation. It works the same way in the Quo app, which does not take custom wording either, so never suggest the app as a way to use the user's own text. If the user has their own use case or sample messages, explain that Quo writes these for them. What the user controls is the business details and messageTypes: keep those accurate, and to change what Quo writes, correct them with update-a2p-registration (include messageTypes, plus one of the business fields that trigger it, such as name resent with its current value), and Quo writes the messaging again. Fails with a conflict if the workspace already has a registration. Requires a workspace owner or admin and an active paid subscription.
Create a new contact in the Quo workspace, including workspace custom fields. Make the best custom-field key match from the user's wording; if Quo rejects the custom-field input as invalid, the error includes exact workspace keys, names, and types so you can retry. Returns the new contact ID and a compact pipe-separated row that can be chained into `update-contact` or `get-contact`. Only `firstName` is required; all other fields are optional.
Add a note to a Quo contact — for example a call summary, a follow-up reminder, or context for teammates. Adding a note does not send anything to the contact. Text is 1–2000 characters. To mention a teammate, write `@` followed by their user ID from `list-users` (e.g. `@USabc123 can you follow up?`); Quo turns it into a mention. Returns the new note ID, which `update-contact-note` takes. Use `list-contacts` or `get-contact` to find the contact ID.
Create a task in Quo linked to exactly one inbox, conversation, or conversation activity. Pick the most specific link target available: if a fetch result row gives you an AC… activity ID (a specific call or message), prefer `activityId` — it ties the task to exactly what the user is referring to. Use `conversationId` (CN…) when the user means the whole thread with a contact (also from fetch-* results). Use `inboxPhoneNumber` (E.164 or PN… ID, from list-inboxes) only when the task isn't about any specific call/message/thread.
Approve or decline the knowledge draft Sona proposed in an ask-knowledge-agent conversation. Before approving, show the user the full draft and its new or changed prices and policies, and get their explicit go-ahead. Sona leads the conversation. Relay Sona's messages to the user verbatim, pass on only what the user actually said, and never answer Sona's questions or invent business details yourself. Declining saves nothing, and the conversation continues.
Fetch call transcripts for a Quo inbox. Requires the Quo Business plan and calls where transcription was enabled. Optionally filter by `userId` to return only calls handled by a specific team member (use `list-users` to look up user IDs). Each result row is `id | participant | direction | status | createdAt | duration | conversationId`; the leading `id` is the call's activity ID (AC…) — pass it to `create-task` as `activityId` to link a follow-up task to that specific call. When `participantPhoneNumber` is omitted, the tool aggregates across participants discovered from conversations, and the trailing `conversationId` (CN…) is populated for thread-level task linking. Set `excludeDoneConversations` to true when the user wants only conversations that are still active in the inbox; omit it to include done conversations. Set `createdAfter` to bound the window — the tool filters conversation discovery by that time server-side, so a call whose conversation is old but had recent activity is still found. Single-participant queries always return that contact's transcript history even when its conversation is marked done, and leave the `conversationId` column blank since the per-call `activityId` is already a precise link target. To page through additional results, use `participantPhoneNumber` + `pageToken` for a single participant, or `conversationPageToken` if you hit the conversation-discovery safety cap. Timezone: `createdAfter`/`createdBefore` are treated as UTC — pass ISO 8601 with a 'Z' suffix or an explicit offset — and every timestamp in results is UTC. When the user asks in relative terms (e.g. 'yesterday', 'this week'), scope the window to THEIR local timezone and convert to the matching UTC instants before calling; if you don't know their timezone, ask. Present returned times in the user's local timezone. This tool makes many API requests per call. Run it sequentially — let one call finish before starting another, including for a different inbox — since several running at once can hit rate limits and return incomplete results. When showing a phone number to the user, render it as a click-to-call link, e.g. [(555) 555-5555](tel:+15555555555). Pass the bare E.164 value (not a tel: URI) into tool parameters.
Fetch message history for a Quo inbox. Two modes: • Single thread (`participantPhoneNumber` for one contact, or `participantPhoneNumbers` for a group thread) — DEPTH: returns that thread's full message history, most-recent-first, with pagination via `pageToken` (up to 100 per page). Each message is `id | participant | direction | timestamp` followed by the text; in a GROUP thread the `participant` column is the message's sender — the external number for an incoming message, or the Quo user ID (US…) of the teammate who sent an outgoing one (resolve US… IDs with `list-users`). A group thread is matched by its EXACT participant set, so pass every other member — whole-inbox results list each group's members on its header. The leading `id` is the message's activity ID (AC…) — pass it to `create-task` as `activityId`. A message with MMS attachments is followed by one indented `media: <mime-type> <url>` line per attachment; text-only messages have none. A message may carry both text and attachments — when it does, the body is the text and the media lines follow it. ALWAYS pass the attachment URL through to the user as a clickable markdown link (e.g. [image/png](https://example.com/image.png)); stating that an attachment exists without giving its URL is not useful, since the user cannot open a link they were not shown. Never shorten, truncate, or omit the URL. When an attachment arrives with no accompanying text the body shows `(no text)`; describe that to the user as a photo or file, not as an empty message. Single-thread queries always return the thread's history even when its conversation is marked done. • Whole inbox (no participant filter) — BREADTH: returns the most-recent messages for EVERY conversation with messages in the window, grouped by conversation (up to 10 messages each), so a daily-summary query never silently drops a contact. Set `createdAfter` to the start of the period the user asked about: the tool then reads every message in that window and represents every conversation in it. Without `createdAfter` it reads only the inbox's 1,000 most recent messages. A group thread is its own conversation, headed `Group: <members>`, and its rows carry an extra sender column (`id | sender | direction | timestamp | text`). Set `excludeDoneConversations` to true when the user wants only conversations that are still active in the inbox; omit it to include done conversations. Each conversation ID (CN…) is on its header for `create-task` linking. A conversation with more than 10 in-window messages is flagged (`[more than 10 …]`) with the exact parameter to fetch its full thread. If the read stops early — no `createdAfter`, or a window too large to read in one call — an `[incomplete: …]` line says where it stopped and a `[next_conversations: …]` token continues it via `conversationPageToken`. `maxResults` is ignored in this mode. Timezone: `createdAfter`/`createdBefore` are treated as UTC — pass ISO 8601 with a 'Z' suffix or an explicit offset — and every timestamp in results is UTC. When the user asks in relative terms (e.g. 'yesterday', 'this week'), scope the window to THEIR local timezone and convert to the matching UTC instants before calling; if you don't know their timezone, ask. Present returned times in the user's local timezone. This tool makes many API requests per call. Run it sequentially — let one call finish before starting another, including for a different inbox — since several running at once can hit rate limits and return incomplete results. When showing a phone number to the user, render it as a click-to-call link, e.g. [(555) 555-5555](tel:+15555555555). Pass the bare E.164 value (not a tel: URI) into tool parameters.
Fetch missed incoming calls for a Quo inbox, each enriched with the voicemail the caller left (transcript + recording URL) when there is one. Returns calls with an explicit unanswered status ('missed', 'no-answer', or 'abandoned') and calls Quo reports as 'completed' even though they have zero call duration and no human or AI answer signal. This fixed classification is not configurable. Use it for questions like 'what calls did I miss yesterday?' or 'any voicemails this week?'. Each result is a row `id | status | direction | participants | createdAt | duration | conversationId`; the leading `id` is the call's activity ID (AC…) — pass it to `create-task` as `activityId` to link a follow-up task to that specific call. The trailing `conversationId` (CN…) is for thread-level task linking and is populated only when discovering across multiple participants (single-participant queries leave it blank since the per-call `activityId` is already precise). Rows whose call has a voicemail are followed by an indented voicemail block (status, duration, recordingUrl, transcript). Voicemails are processed asynchronously — a voicemail with status 'in-progress' has null duration/transcript/recordingUrl, so retry in a few seconds. Missed calls where the caller hung up without leaving a message are still listed, just marked '(no voicemail)'. When `participantPhoneNumber` is omitted, the tool aggregates calls across all participants active in your `createdAfter` window — the tool filters conversation discovery by that time server-side, so a missed call whose conversation is old but had recent activity is still found. Without `createdAfter`, discovery falls back to the most recent conversations. For exhaustive single-contact pulls, use `participantPhoneNumber` + `pageToken`; if you hit the conversation-discovery safety cap, use `conversationPageToken` to continue. Timezone: `createdAfter`/`createdBefore` are treated as UTC — pass ISO 8601 with a 'Z' suffix or an explicit offset — and every timestamp in results is UTC. When the user asks in relative terms (e.g. 'yesterday', 'this week'), scope the window to THEIR local timezone and convert to the matching UTC instants before calling; if you don't know their timezone, ask. Present returned times in the user's local timezone. This tool makes many API requests per call. Run it sequentially — let one call finish before starting another, including for a different inbox — since several running at once can hit rate limits and return incomplete results. When showing a phone number to the user, render it as a click-to-call link, e.g. [(555) 555-5555](tel:+15555555555). Pass the bare E.164 value (not a tel: URI) into tool parameters.
Get this Quo workspace's A2P 10DLC carrier registration — the one-per-workspace registration US carriers require before a business can text people from local numbers. Shows where it stands in plain words (draft and not yet billed; submitted and awaiting carrier review; approved; or rejected, with the carriers' reasons and whether it can be fixed here or must be resubmitted in the Quo app), every business and messaging detail carriers vet, and the exact next step. Use this first in any A2P conversation, and to check status after submitting. Read-only; does not submit or charge anything.
Get a Sona call started with start-agent-call: its status and, once it has ended, its title, summary and collected data. A call typically takes 30–90 seconds, so poll about every 10 seconds until the status is final (completed, failed, no-answer, busy, voicemail, voicemail-left or canceled). `completed` does not mean a person answered or that the task succeeded; voicemail or an automated system can also end as completed, so read the summary.
Get a Sona SMS conversation started with start-agent-conversation: its status, why it failed or ended, and, once the agent has summarized it, its title, summary and collected data. It can run for minutes or hours, so check back every few minutes rather than polling rapidly, until the status is final (completed, failed or canceled). A failed one sent no texts; its failure reason says why. `completed` does not mean the task succeeded, so read the summary. Use fetch-messages to read the texts themselves.
Fetch a single Quo contact by ID, including its default fields (name, company, role, email, phone) and any custom fields configured on the workspace. Use `list-contacts` first if you need to discover contact IDs. When showing a phone number to the user, render it as a click-to-call link, e.g. [(555) 555-5555](tel:+15555555555). Pass the bare E.164 value (not a tel: URI) into tool parameters.
Get a Quo inbox's settings: its name, its business hours (whether they are enforced, the timezone, and each day's open window) and its call recording (whether calls are recorded automatically, and how callers are told a call may be recorded, for inbound and outbound calls). Read these before changing anything with update-inbox-settings, so you can tell the user what will change. Use list-inboxes to find the inbox. When showing a phone number to the user, render it as a click-to-call link, e.g. [(555) 555-5555](tel:+15555555555). Pass the bare E.164 value (not a tel: URI) into tool parameters.
List the notes on a Quo contact. Each note is a row `id | createdAt | updatedAt | authorId` followed by its text, indented; a note with attachments is followed by one indented `media: <mime-type> <url>` line per attachment. `authorId` is the Quo user (US…) who wrote the note — use `list-users` to show their name. Pass a note's `id` to `update-contact-note` to change it. Use `list-contacts` or `get-contact` to find the contact ID. Supports pagination via `pageToken` (1–50 results per page).
List contacts in the Quo workspace, optionally filtered by `externalIds` or `sources`. Returns a compact pipe-separated table (id | name | company | role | email | phone) and supports pagination via `pageToken` (1–50 results per page). When showing a phone number to the user, render it as a click-to-call link, e.g. [(555) 555-5555](tel:+15555555555). Pass the bare E.164 value (not a tel: URI) into tool parameters.
List the phone numbers (inboxes) available in the Quo workspace, including assigned users. Use this first to discover the correct `from` number for `send-message` or the `inboxPhoneNumber` for `fetch-messages` / `fetch-call-transcripts`. When showing a phone number to the user, render it as a click-to-call link, e.g. [(555) 555-5555](tel:+15555555555). Pass the bare E.164 value (not a tel: URI) into tool parameters.
List tasks in the Quo workspace. Returns compact rows with task ID, status, title, due date, assignee, linked phone number/conversation/activity, creation time, and revision. Supports pagination via `pageToken` (1-100 results per page).
List the users (members) in the Quo workspace. Returns each user's ID, name, email, and role. Use the returned `id` (US… format) to filter other tools like `list-inboxes` by user. Supports pagination via `pageToken` (1–50 results per page, max 50).
Mark one or more Quo conversations as read, done or open, the same as in the Quo app, without sending a message. `read` clears the unread indicator. `done` takes a conversation out of the inbox (it stays searchable, and fetch tools can exclude done conversations with `excludeDoneConversations`). `open` returns a done conversation to the inbox. Pass up to 50 conversation IDs per call; all get the same `markAs`. Each conversation succeeds or fails on its own, and the result lists both. Marking is safe to repeat, so retry failed IDs by calling again with just those. Conversation IDs (CN…) come from the `conversationId` column of fetch-messages (whole-inbox results), fetch-call-transcripts or fetch-missed-calls. Only mark the conversations the user asked about; don't sweep an inbox on your own initiative.
Send SMS to up to 40 recipients as SEPARATE individual (1:1) messages — a broadcast. Two modes: for the SAME text to everyone, pass `to` (2–40 numbers) + `content`; to personalize per recipient, pass `messages` as [{to, content}] instead. Provide one mode or the other, never both. Prefer `to` + `content` when the text is identical — it guarantees everyone receives exactly the same message. Each recipient gets their own private thread and does NOT see the other recipients; replies come back individually. Use this for announcements or blasts. This is different from send-group-message, which puts everyone in ONE shared thread that exposes their numbers to each other — use that only when recipients should see one another. For a single recipient use send-message. Sends cannot be undone. The `from` number must belong to the user's Quo workspace — use `list-inboxes` to discover available numbers. Recipients must be valid phone numbers in E.164 format (international supported).
Send a single SMS group message from a Quo inbox to 2–10 recipients in one shared thread. IMPORTANT: this creates a group conversation — every recipient can see all the other recipients' phone numbers and all replies, and it cannot be undone once sent. Use `send-message` instead when you want to text one person, or to text several people privately without exposing them to each other (call `send-message` once per recipient). The `from` number must belong to the user's Quo workspace — use `list-inboxes` to discover available numbers. Recipients must be valid phone numbers in E.164 format (international supported).
Send one SMS text, exactly as written, from a Quo inbox to a single recipient, right now. Use it when the user wants a specific message sent (they wrote or dictated it, or asked you to draft one) or a one-way notice such as a reminder, an address or a confirmation. It does not watch for or answer replies. To have Sona, Quo's AI agent, text someone and handle the back-and-forth until a goal is reached (confirm or reschedule an appointment, collect details, answer their questions), use start-agent-conversation instead. The `from` number must belong to the user's Quo workspace — use `list-inboxes` to discover available numbers. Recipient must be a valid phone number in E.164 format (international supported).
Have Sona, Quo's AI agent, place a real phone call from a user's Quo number to carry out a task. Use this tool when the user asks Sona to make a call. Before using this tool, ensure the intended outcome and the details needed to achieve it are clear from the conversation. If they are ambiguous or missing, ask targeted questions; do not guess or call yet. For example, 'schedule an appointment' needs acceptable dates, times and timezone. Restate your understanding of what the agent will do and confirm the from number, destination and specific task with the user. The call is real and cannot be undone. Each call uses 50 of the workspace's automation credits (a call that ends within 15 seconds is free), so mention the cost when you confirm the call with the user; if the workspace is out of credits, the call fails without dialing. Quo may also ask the user to confirm directly. Every call needs an idempotencyKey; reuse it for every retry of the same call to avoid duplicates. This returns an agent call ID immediately while the call runs in the background. Poll get-agent-call about every 10 seconds until its status is final. Use cancel-agent-call to stop it. Sona's tools are in beta: tell the user so if they ask, or when a result falls short of what they expected. When the user comments on how Sona or this tool performed (for example, Sona misunderstood, missed the goal or sounded unnatural), offer to send it to the Quo team with submit-feedback, including the ID of the Sona run or knowledge interview so the team can find it. Corrections to the business's own details, such as a wrong price or outdated hours, go to ask-knowledge-agent instead.
Hand an SMS conversation to Sona, Quo's AI agent, to get something done with one real person through back-and-forth texting. Sona texts as the user's business: it writes the first text itself, reads each reply, and keeps replying on its own until the goal is reached, the person replies STOP, someone on the user's team replies in the conversation (which takes over from Sona straight away), or it is canceled. Use this when the user wants Sona to handle a conversation, not just send a text, e.g. 'have Sona confirm Jane's appointment', 'get Mike to pick a delivery day', 'follow up with this lead and answer their questions'. To send one text the user wrote or dictated, or a one-way notice that needs no handling of replies, use send-message instead. Sona already knows the business (its services, prices, hours and policies), so the task only needs what is specific to this conversation. Before starting, make sure the goal and the details it needs are clear; if not, ask targeted questions rather than guessing. Restate what Sona will do and confirm the from number, the person to text and the task with the user: texts cannot be unsent, and Quo may also ask the user to confirm. Every request needs an idempotencyKey; reuse it for every retry of the same task. This returns an agent conversation ID straight away: check it with get-agent-conversation in a few minutes, read the texts with fetch-messages, and stop it with cancel-agent-conversation. Sona's tools are in beta: tell the user so if they ask, or when a result falls short of what they expected. When the user comments on how Sona or this tool performed (for example, Sona misunderstood, missed the goal or sounded unnatural), offer to send it to the Quo team with submit-feedback, including the ID of the Sona run or knowledge interview so the team can find it. Corrections to the business's own details, such as a wrong price or outdated hours, go to ask-knowledge-agent instead.
Submit this Quo workspace's draft A2P 10DLC registration to carriers. SUBMITTING IS BILLED AND IS A COMPLIANCE COMMITMENT: it charges the workspace a one-time $19.50 registration fee (paid to the Carrier Registry on the workspace's behalf; not a Quo fee), then a monthly fee of $1.50 ($3 for non-profits), and $15 for each resubmission after a rejection; the user attests the workspace will not send messages about forbidden topics (policy and fees: https://support.quo.com/getting-started/carrier-registration/carrier-registration#registration-process); and it cannot be undone through the API. It always takes TWO calls. (1) Call it with no confirmationToken: nothing is submitted or charged; it returns the registration for review, the disclosures the user must see, and a confirmationToken. Show the user every disclosure and the details, and get their explicit confirmation. (2) Only then call it again with that confirmationToken, billingAcknowledged: true and forbiddenMessageTopicsAcknowledged: true. Never set those acknowledgments without the user's explicit confirmation in this conversation. The token expires if the registration changes. If submit reports that auto-fill is still running, wait a minute and repeat step 2. Requires a workspace owner or admin and an active paid subscription.
Submit feedback from the user to the Quo product team about what would make Quo or their experience better. Ask for more details before use if the feedback is ambiguous or unclear. Proactively offer to submit feedback only when the user is trying to do something with their Quo phone line or communications that is not supported, or comments on how one of Sona's beta tools performed; do not solicit feedback otherwise. Only share what the user shared, preserving their main point and relevant context.
Change fields on this Quo workspace's DRAFT A2P 10DLC registration. Only the fields you pass change; everything else stays as it is (address and personOfContact merge field by field). Changing name, alternateName, businessType, websiteUrl, personOfContact.firstName, personOfContact.lastName has Quo write the messaging details again, so those changes must include `messageTypes`. Quo writes the messaging details carriers review (the description, sample messages and opt-in flow) for the user, from the business details and messageTypes, in the form carriers look for, to improve the chance of approval. They are not returned by these tools, so there is nothing to review or edit; only the use case is shown. Present this as a feature that handles the hardest part of registration for them, not as a limitation. It works the same way in the Quo app, which does not take custom wording either, so never suggest the app as a way to use the user's own text. If the user has their own use case or sample messages, explain that Quo writes these for them. What the user controls is the business details and messageTypes: keep those accurate, and to change what Quo writes, correct them with update-a2p-registration (include messageTypes, plus one of the business fields that trigger it, such as name resent with its current value), and Quo writes the messaging again. Editing is free and sends nothing to carriers. Only drafts can be edited: a registration awaiting carrier review cannot be changed, and one whose campaign carriers rejected must be corrected in the Quo app. Any change invalidates an earlier submit review, so run submit-a2p-registration's review again afterwards. Requires a workspace owner or admin.
Update fields on an existing Quo contact, including workspace custom fields. Make the best custom-field key match from the user's wording; if Quo rejects the custom-field input as invalid, the error includes exact workspace keys, names, and types so you can retry. Omit fields you want to leave unchanged; pass `null` for any default field or custom-field value you want to clear. Fields not included in the request are preserved through a full read-merge-write. Use `get-contact` first if you need to inspect current contact values.
Replace the text of an existing note on a Quo contact. The new `text` replaces the note's entire text, so to add to a note, pass its current text plus the addition — use `list-contact-notes` to read the current text and find the note ID. Text is 1–2000 characters. To mention a teammate, write `@` followed by their user ID from `list-users` (e.g. `@USabc123 can you follow up?`); Quo turns it into a mention.
Change a Quo inbox's settings: its name, its business hours, and its call recording. Pass only what should change; everything left out keeps its current value. Only the inbox's owners and the workspace's admins can change these. Business hours: `enabled` turns enforcement on or off (it has no effect until the inbox has a schedule), `timezone` is the IANA timezone the schedule is read in, and `schedule` sets the open window for the days you name, in local time as 24-hour HHMM (9am and 5:30pm are also accepted, but a time without am/pm is read as 24-hour, so write 5:30pm, not 5:30); a day set to null is closed, a day you leave out keeps its window, `{ start: '0000', end: '0000' }` is open all day, and `schedule: null` removes the schedule so business hours stop being enforced. Call recording: `autoRecord` records every call on the inbox (the workspace's plan must include it), and `callDisclosure` sets how inbound and outbound callers are told the call may be recorded. Recording disclosure can be a legal requirement where the user operates, so never turn it off unless the user asks. These changes take effect on live calls right away: call get-inbox-settings first, tell the user exactly what will change, and confirm it with them. Quo may also ask the user to confirm directly. Use list-inboxes to find the inbox. When showing a phone number to the user, render it as a click-to-call link, e.g. [(555) 555-5555](tel:+15555555555). Pass the bare E.164 value (not a tel: URI) into tool parameters.
Update a Quo task. Performs exactly one change per call, selected by which parameter is provided: title/description (counted as one change), assignToUserId, unassignUserId, dueDate, removeDueDate, completed (true marks the task done, false reopens it), linkConversationId, or unlinkConversationId. To make several changes, call this tool once per change.
Quo ChatGPT Plugin FAQ
How the directory, categories and Discoverability Score work.
Read the methodologyHow do I improve Quo'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 Quo alternatives on ChatGPT?
As of 2026-11-02, Quo competes with AdaptClose, Aircover.ai, Airspeed, Anagram, ASPR, Avoma, Backstory, Bizu.ai and 13 more in ChatGPT Conversation & Revenue Intelligence, 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.