Workspace discovery
Example prompts:
- “Which Quo numbers can I use, and who is assigned to each one?”
- “Find Jamie’s user ID and show the inboxes assigned to them.”
Inbox settings
Both tools take
inbox as an E.164 number, a PN… phone-number ID, or a recognizable local format. Run list-inboxes to find it.
Business hours
enabledturns enforcement on or off. It has no effect until the inbox has a schedule, so an inbox with enforcement on starts enforcing hours as soon as a schedule is added.timezoneis the IANA timezone the schedule is read in, such asAmerica/Toronto.schedulesets the open window for the days you name, in 24-hourHHMMlocal time. Times such as9:00or5:30pmare also accepted.- A day you leave out keeps its current window.
- A day set to
nullis closed. { "start": "0000", "end": "0000" }is open all day.schedule: nullremoves the schedule, so business hours stop being enforced.
autoRecordrecords every call on the inbox. The workspace’s plan must include automatic call recording.callDisclosuresets how callers are told a call may be recorded, separately forinboundandoutboundcalls:voiceplays a spoken announcement,audioToneplays a tone, anddisabledplays nothing.
- “What are the business hours and recording settings on our support line?”
- “Close the sales line on Saturdays and open it 9am to 5pm on weekdays, Toronto time.”
- “Turn on automatic call recording for the support line and play a spoken disclosure on inbound calls.”
Carrier registration (A2P 10DLC)
US carriers require a business to register before it texts US numbers from local numbers. This is called A2P 10DLC registration. A workspace has one registration, and once carriers approve it, every number in the workspace can text US numbers. See Carrier registration for how registration works in Quo.
Only workspace owners and admins can use these tools, and the workspace needs an active paid subscription. Free trials cannot register.
Registration details
Carriers check the business against its tax registration, so the details must match it exactly. The client asks you for them rather than guessing. It can also offer to read them from a document you share in the chat, such as an IRS EIN letter (CP 575 or 147C), articles of incorporation or organization, a state business registration, or a Canadian business number confirmation. This is optional. The client reads only what the document shows, usually the legal name, legal structure, tax ID, and registered address, shows you what it read, and asks you for the rest.messageTypes says what the business texts people about. Use one or more of appointments_scheduling, transactional_notifications, customer_support, verification_security, and promotions_announcements.
Quo writes the messaging details that carriers review, such as the description, sample messages, and opt-in flow, from the business details and messageTypes, in the form carriers look for. This works the same way as in the Quo app. The tools show the use case but not the rest of the messaging, and you cannot supply your own wording. To change what Quo writes, correct the business details or messageTypes with update-a2p-registration; a change to the name, alternate name, business type, website, or contact name must include messageTypes, and Quo writes the messaging again.
Submitting
Submitting is billed:- A one-time $19.50 registration fee, paid to the Carrier Registry on the workspace’s behalf. It is not a Quo fee.
- A monthly fee of 3 for non-profits.
- $15 for each resubmission after carriers reject the registration.
submit-a2p-registration always takes two calls:
- Review. Called without a
confirmationToken, it submits and charges nothing. It returns the registration, the billing, forbidden-topics, compliance, and irreversibility notices, and aconfirmationToken. The client shows you all of it and asks you to confirm. - Submit. Only after you confirm, the client calls it again with the
confirmationToken,billingAcknowledged: true, andforbiddenMessageTopicsAcknowledged: true. Without both acknowledgments, nothing is sent to Quo.
After you submit
Carrier review can take several days. Check its progress withget-a2p-registration.
- If carriers reject the business details, the registration returns to a draft. Fix the fields the carrier messages name with
update-a2p-registration, then submit again. - If carriers reject the campaign, the registration cannot be resubmitted through Quo MCP. Correct and resubmit it in the Quo app.
- A submitted registration cannot be changed or canceled while carriers review it.
- “Is our carrier registration approved yet?”
- “Help me register our business so we can text US customers. Here’s our EIN letter.”
- “Carriers rejected our registration. What do they want us to fix?”
Messages and conversations
Choose the correct send tool
Bulk message modes
send-bulk-messages accepts one of two input modes:
- Same message: Provide
toas an array of 2–40 phone numbers andcontentas the message sent to every recipient. - Personalized messages: Provide
messagesas an array of 2–40 objects, each containing that recipient’stophone number andcontent.
messages with to or content, and include each recipient only once. Use send-message when sending to one person.
All three send tools:
- Require a
fromnumber that belongs to the connected Quo workspace. The tool accepts its E.164 number orPN…phone-number ID. - Accept message content up to 1,600 characters.
- Use prepaid messaging credits and count as API-powered messages. See API pricing.
- Cannot undo or recall a message after it is sent.
- “Show me yesterday’s messages across the support inbox and summarize the open questions.”
- “Summarize this week’s support inbox, but skip conversations we already marked done.”
- “Show the full group thread with Priya and Sam from the sales line.”
- “Draft a reply to +14165550100, but ask me to approve it before sending.”
- “Send this service notice privately to these 12 customers so none of them can see the other numbers.”
- “Send each attendee their own confirmation time from this list as a private message.”
- “Mark the support conversations I replied to today as done.”
Calls and voicemail
To have Sona place a call for you, see Phone calls.
Voicemail processing is asynchronous. If a voicemail has an
in-progress status, its duration, transcript, and recording URL may be empty; retry after processing completes. A missed call with no voicemail is still returned.
Call and message results include activity IDs (AC…). Multi-contact results can also include conversation IDs (CN…). Use these IDs to link a follow-up task to the exact call, message, or conversation, or pass conversation IDs to mark-conversations.
Example prompts:
- “What calls did we miss yesterday, and which callers left a voicemail?”
- “Summarize this week’s completed call transcripts for the sales inbox.”
- “Find Pat’s call from this morning and create a task linked to that call.”
Contacts
Phone numbers are normalized to E.164. Email values must be valid email addresses.
update-contact only works on contacts created in Quo, through the API, or through Quo MCP. Contacts created by an integration cannot be updated — use get-contact to check a contact’s source, and make the change in the system that created it.- “Look up the contact with +14165550100 and show their custom fields.”
- “Create a contact for Priya Shah at Northwind, then show me the new contact ID.”
- “Clear the outdated role on this contact without changing any other field.”
Contact notes
Adding or editing a note doesn’t send anything to the contact. Notes can’t be deleted through Quo MCP.
Example prompts:
- “Add a note to Priya’s contact summarizing today’s call, and mention Jamie so they follow up.”
- “What notes do we have on Northwind’s main contact?”
- “Fix the typo in the last note on this contact.”
Tasks
When creating a task, use the most specific link available:
- Use an
activityId(AC…) for one particular call or message. - Use a
conversationId(CN…) for the whole thread with a contact. - Use an inbox number or
PN…ID only when the task is not about a specific activity or conversation.
update-task can update the title and description together as one change. Assignment, unassignment, due-date changes, completion or reopening, and conversation linking or unlinking are separate change types.
Example prompts:
- “List the open tasks and show who each is assigned to.”
- “Create a follow-up task for tomorrow linked to this missed call and assign it to Alex.”
- “Mark task
TK…complete.”
Sona (beta)
Sona is Quo’s AI agent. These tools let your AI client have Sona place a phone call or handle an SMS conversation for you, and talk to Sona to check or change what Quo’s AI agents know about your business. They are in beta.If you connected Quo MCP before October 16, 2026, disconnect it and connect it again to use these tools. They need permissions that earlier connections did not request.
Phone calls
Sona speaks as your business. It already knows your business from its business knowledge, so the
task only needs what is specific to this call: the goal, what counts as done, and the details Sona needs to get there. For scheduling, include the acceptable dates, times, and timezone, and say what Sona should do if none of them work.
Before placing the call, the client confirms the from number, the number to call, and the task with you, because a call cannot be undone. Clients that support it show a Quo confirmation prompt; otherwise the client must ask you in the chat. The client makes up an idempotencyKey for each call and sends it again on every retry, so a retried request never places a second call.
- If voicemail answers, Sona hangs up by default. Set
voicemailtoleave-messageto have Sona leave a message, andvoicemailMessage(up to 1,000 characters) to choose what it says; without one, Sona leaves a short request to call back. maxDurationSecondscaps how long the call may last once answered: up to 600 seconds, 300 by default.- Each call uses 50 of your workspace’s automation credits. A call that ends within 15 seconds is free. If your workspace is out of credits, the call fails without dialing.
- You must be a member of the
fromnumber. - Quo limits how many Sona calls run at once, how many are placed each day, and how many go to one number.
SMS conversations
Sona texts as your business. It writes the first text, reads each reply, and keeps replying on its own until one of these happens:
- It reaches the goal and hands the conversation back.
- The person replies STOP.
- Someone on your team replies in the conversation. Sona stops straight away.
- The conversation is canceled, marked done, or reaches its maximum length.
task only needs what is specific to this conversation: the goal, what counts as done, and details about the person, such as what was already agreed and the times to offer.
Before starting, the client confirms the from number, the person to text, and the task with you, because texts cannot be unsent. Clients that support it show a Quo confirmation prompt; otherwise the client must ask you in the chat. The client makes up an idempotencyKey for each conversation and sends it again on every retry, so a retried request never starts a second conversation.
- You must be a member of the
fromnumber, and AI agent conversations must be turned on for your workspace. - Quo limits how many Sona conversations run at once, how many start each day, and how many go to one number.
- A conversation can fail before any text is sent, for example when the person has opted out or your carrier registration does not allow the text.
get-agent-conversationgives the reason. - Read the texts themselves with
fetch-messages.
Business knowledge
The business knowledge is the one document every Quo AI agent in your workspace reads to understand your business, including the agent that answers new leads. Use
ask-knowledge-agent to update it, or to correct how an agent described your business, such as a wrong price or outdated hours.
Sona leads the conversation and asks follow-up questions. The client should pass on Sona’s messages and your answers as they are, and should not answer Sona’s questions for you. Sona keeps the knowledge to information about your one business and does not invent prices or policies.
Nothing is saved until you approve Sona’s draft. Before you approve, you see the full draft and any new or changed prices and policies. Clients that support it show a Quo approval prompt; otherwise the client shows you the draft and sends your decision with decide-knowledge-save.
If Sona takes too long to reply, the response says Sona is still working and includes a messageId. The client then calls ask-knowledge-agent with the interviewId and that messageId to get the reply, instead of sending the message again.
Example prompts:
- “Have Sona call Lakeview Dental at +14165550188 and book a cleaning for me next Tuesday or Wednesday afternoon, Toronto time.”
- “Did Sona’s call to the dentist work? What time did it book?”
- “Have Sona text Jane at +14165550100 to move her Saturday 11am appointment to Tuesday 2pm or Thursday 10am, and confirm the one she picks.”
- “How is Sona’s conversation with Mike going?”
- “Stop Sona’s conversation with Mike.”
- “We don’t open on Sundays anymore. Update what our AI agents know.”
- “The agent quoted the wrong price for a haircut. Fix it.”
Feedback
Sona’s tools are in beta. When you comment on how Sona performed, the client can offer to send your feedback with
submit-feedback, including the agent call, agent conversation, or interview ID so the Quo team can find it.
This tool is opt-in. A client should not run it as a routine survey or raise it in an unrelated conversation, and it should offer to send feedback at most once — after trying to help — when you ask to share feedback or hit a limitation it cannot work around. Frustration alone is not consent.
A submission cannot be edited or withdrawn, and Quo does not promise a reply. Review the summary before approving it, and keep credentials, unrelated personal details, and protected health information out of the feedback.
Example prompts:
- “Send Quo my feedback that I need to schedule a message for a future date.”
- “Yes, please pass that along to the product team.”
Fetch modes and pagination
The fetch tools can search a specific contact deeply or discover activity across an inbox broadly.One contact or group thread
SetparticipantPhoneNumber to query one contact. To query a group thread with fetch-messages, set participantPhoneNumbers instead: a list of every other member of the group, up to 10, not including your inbox. A group thread is matched by its exact member list, so take the list from the group’s header in a whole-inbox result.
fetch-messages,fetch-call-transcripts, andfetch-missed-callsreturn up to 100 matching records per page.- If the response includes a next-page token, call the same tool with the same filters plus
pageToken. - A
pageTokencan be used only whenparticipantPhoneNumberis set, orparticipantPhoneNumbersfor a group thread. - These queries always return the full history, including conversations marked done or snoozed.
Whole inbox
Omit the participant filters to work across the inbox. By default this includes conversations marked done or snoozed.fetch-messagesreturns up to 10 of the most recent messages for every conversation with messages in the window, including group threads. SetcreatedAfterto read every message in the window. Without it, the tool reads only the inbox’s 1,000 most recent messages.- Group threads are listed with their members, and each message shows its sender. A conversation with more than 10 messages in the window is flagged with the exact parameters to fetch its full thread.
- If
fetch-messagesstops early, becausecreatedAfterwas omitted or the window is too large to read in one call, the response says where it stopped and includes aconversationPageTokento continue. maxResultsapplies to single-contact and group-thread message queries and is ignored by the whole-inbox message view.fetch-messagesandfetch-call-transcriptsacceptexcludeDoneConversations. Set it totrueto skip conversations that are currently marked done or snoozed; it defaults tofalse, which includes every conversation.fetch-missed-callsdoes not accept this filter.- Call tools aggregate matching calls across discovered participants, up to the requested result limit. If a call-tool response indicates that older conversations remain, continue discovery with the returned
conversationPageToken.
Dates, times, and phone numbers
- Pass
createdAfter,createdBefore, and task due dates as ISO 8601 datetimes withZor an explicit offset, such as2026-08-21T14:00:00-04:00. - Fetch results use UTC timestamps. A client should convert relative requests such as “yesterday” from the user’s local timezone to the corresponding UTC range, then present results in the user’s timezone.
- Use E.164 for external phone numbers, such as
+14165550100. International numbers are supported. - When a tool accepts an inbox, use either its E.164 number or its
PN…ID. Runlist-inboxesto discover valid values.