Set up Hey Quad with an AI app
Owners and admins can connect ChatGPT, Claude or another AI app to the Org Admin connector to help set Hey Quad up. Turn it on, connect, what it can change, what waits for approval, and what only a person can do in Hey Quad.
The Org Admin connector lets an AI app help set Hey Quad up for your organization: how the CRM is organized, call flows, the AI receptionist, routing and the phone system. It's separate from the Business connector that everyone uses for everyday work, and it's off until an admin turns it on.
The app works as the person who connects it, with their permissions. Most changes are drafts or can be undone, and anything that goes live for callers or spends money waits for a person to approve it in Hey Quad.
Turn it on
The Org Admin connector has its own switch, separate from Allow AI apps.
- Make sure Allow AI apps is on under Settings → Inbox & email. See Use ChatGPT, Claude or another AI app with Hey Quad.
- On the same page, find AI apps may change settings.
- Turn on Allow AI apps to change settings and confirm.
Changing this switch needs both the "Manage general settings" and "Turn on AI apps" permissions, which owners have. Organizations that handle health information (PHI) can't turn it on.
Turning it off stops every app connected this way on its next request. Business connections keep working.
Connect your app
- Copy the address shown under Address to add in the AI app:
https://mcp.heyquad.com/mcp/admin. - In your AI app, add a custom connector or MCP server with that address. Use a separate connector from the Business one.
- Sign in to Hey Quad, pick the organization, choose the areas the app may use, such as CRM setup, Call handling, Phone system or Team & billing, and click Allow.
Anyone who can sign in can connect, but the app can only do what that person's role allows. A member without settings permissions gets few or no tools.
How changes happen
- Reads: the app looks at how things are set up today. Nothing changes.
- Drafts: call flows, the AI receptionist and integrations are edited as drafts. Callers keep getting the published version until someone publishes the draft.
- Changes, can be undone: some live settings, such as business hours, holidays, queue members, extension settings and number routing, change at once. The app gets an undo and can put things back if you ask.
- Needs approval: publishing a flow, a receptionist or an integration, and buying, releasing or porting a number, go to the Approvals list. A person who holds the same permissions approves them in Hey Quad, with a two-factor check where Hey Quad asks for one. The approval shows what will change. See Approve what an AI app asks to do.
Every action the app takes is recorded with the person's name and the app's name.
What stays in Hey Quad
An AI app can never do these, on either connector. A person does them in Hey Quad:
- delete the organization, transfer ownership, or export all of its data;
- accept agreements, or sign or change a contract;
- turn AI apps on;
- change privacy or health-information (HIPAA) settings, or how long recordings are kept;
- change an emergency (911) address;
- see or change SIP passwords, the port-out PIN, or caller ID attestation;
- change sign-in security or the two-factor policy;
- remove members;
- add or change a payment method.
Tools
These are the tools an app connected to the Org Admin connector can use, by the area you allow when you connect. The list comes straight from Hey Quad, so it's always current. An app only sees the ones your permissions allow.
CRM setup
How the CRM is set up. An app gets these tools when you allow CRM setup.
| Tool | What it does | Kind | Permissions it needs | Command |
|---|---|---|---|---|
| crm_setup | The CRM's whole setup, with ids: types, stages, fields (enabled or not), lifecycle and tags. | Reads | Set up the CRM | hq crm-setup schema |
| work_type | Create or change a work type (deals, tickets, jobs…); answers `undo`. Takes: type (text), label (text), pluralLabel (text), trackValue (yes or no), enabled (yes or no), showInSidebar (yes or no), defaultView (text), alertOnNew (yes or no), autoCreateContact (yes or no) | Changes, can be undone | Set up the CRM | hq crm-setup work-type |
| work_stages | Set a work type's stages, in order; answers `undo`. Takes: type (text, required), stages (list, required) | Changes, can be undone | Set up the CRM | hq crm-setup stages |
| record_type | Create or change a contact or company type (Vendor, Partner…); answers `undo`. Takes: type (text), label (text), appliesTo (text) | Changes, can be undone | Set up the CRM | hq crm-setup record-type |
| field | Add or change a custom field (text, dropdown, number, yes/no…); answers `undo`. Takes: object (text, required), key (text), label (text), fieldType (text), options (list), enabled (yes or no) | Changes, can be undone | Set up the CRM | hq crm-setup field |
| field_order | Set the order of an object's fields; answers `undo`. Takes: object (text, required), keys (list, required) | Changes, can be undone | Set up the CRM | hq crm-setup field-order |
| lifecycle_stage | Add or change a contact lifecycle stage (Lead, Customer…); answers `undo`. Takes: stage (text), label (text), color (text), isDefault (yes or no) | Changes, can be undone | Set up the CRM | hq crm-setup lifecycle-stage |
| tag | Rename a tag, or merge it into another, on every record of a kind; answers `undo`. Takes: object (text, required), from (text, required), to (text, required) | Changes, can be undone | Set up the CRM | hq crm-setup tag |
| crm_delete | Propose deleting a work type, contact/company type, field or lifecycle stage. Takes: what (text, required), key (text, required), object (text), moveTo (text), summary (text) | Needs approval | Set up the CRM | hq crm-setup delete |
Call handling
Call flows, the AI receptionist, routing and audio. An app gets these tools when you allow Call flows, AI receptionist.
| Tool | What it does | Kind | Permissions it needs | Command |
|---|---|---|---|---|
| flows | List the org's call flows: status, the numbers each answers, the last publish. Takes: includeArchived (yes or no), kind (text) | Reads | See call flows | hq flows list |
| flow | Read one call flow: the live definition, the draft, what uses it, recent publishes. Takes: flow (text, required) | Reads | See call flows | hq flows get |
| flow_catalog | The node types a flow can use: fields, required fields, options, events and docs. Takes: type (text) | Reads | See call flows | hq flows catalog |
| validate_flow | Check a flow's draft with the publish validator (errors block publishing). Takes: flow (text, required) | Reads | See call flows | hq flows validate |
| publish_flow_preview | What publishing the draft would change: nodes added, removed and changed, numbers affected. Takes: flow (text, required) | Reads | See call flows | hq flows preview |
| create_flow | Create a call flow: blank, from a template, or from a definition (saved as its draft). Takes: name (text, required), template (text), definition (JSON object) | Draft | See call flows, Edit call flows | hq flows create |
| duplicate_flow | Copy a call flow (its live version) into a new flow that nothing routes to. Takes: flow (text, required), name (text) | Draft | See call flows, Edit call flows | hq flows duplicate |
| edit_flow | Edit a flow's draft: replace the whole definition and/or apply targeted node edits. Takes: flow (text, required), definition (JSON object), ops (list of JSON objects) | Draft | See call flows, Edit call flows | hq flows edit |
| discard_flow_draft | Throw away a flow's unpublished draft. Takes: flow (text, required) | Draft | See call flows, Edit call flows | hq flows discard |
| rename_flow | Rename a flow (in its draft; the name goes live when the flow is published). Takes: flow (text, required), name (text, required) | Draft | See call flows, Edit call flows | hq flows rename |
| publish_flow | Publish a flow's draft so callers hear it (an AI app's request goes to the Approvals list). Takes: flow (text, required), message (text) | Needs approval | See call flows, Publish call flows | hq flows publish |
| revert_flow | Make an earlier published version live again (an AI app's request goes to the Approvals list). Takes: flow (text, required), toVersion (number, required), message (text) | Needs approval | See call flows, Publish call flows | hq flows rollback |
| set_default_flow | Make a flow the org's default flow (an AI app's request goes to the Approvals list). Takes: flow (text, required) | Needs approval | See call flows, Publish call flows | hq flows set-default |
| archive_flow | Archive a flow nothing routes to (an AI app's request goes to the Approvals list). Takes: flow (text, required) | Needs approval | See call flows, Edit call flows | hq flows archive |
| receptionists | List the AI receptionists Takes: includeArchived (yes or no) | Reads | See the receptionist | hq receptionists list |
| receptionist | One AI receptionist, described part by part Takes: id (text, required), live (yes or no) | Reads | See the receptionist | hq receptionists get |
| receptionist_kb | Knowledge bases and their documents, or search them Takes: receptionist (text), search (text) | Reads | See the receptionist | hq receptionists kb |
| receptionist_usage | How a receptionist's calls went Takes: id (text, required), days (number) | Reads | See the receptionist | hq receptionists usage |
| kb_gaps | Questions callers asked that the knowledge didn't answer Takes: id (text, required), days (number) | Reads | See the receptionist | hq receptionists kb-gaps |
| set_greeting | Change what the receptionist says first Takes: id (text, required), text (text, required), callerCanInterrupt (yes or no) | Draft | See the receptionist, Edit the receptionist | hq receptionists set-greeting |
| set_persona | Change who the receptionist is and how it behaves Takes: id (text, required), name (text), businessName (text), role (text), tone (list), instructions (text) | Draft | See the receptionist, Edit the receptionist | hq receptionists set-persona |
| set_hours_behavior | Choose its business hours and what it does after hours Takes: id (text, required), schedules (list), checkHours (yes or no), afterHours (text), afterHoursNote (text) | Draft | See the receptionist, Edit the receptionist | hq receptionists set-hours |
| set_transfer_targets | Choose where the receptionist may send callers Takes: id (text, required), extension (text), numbers (list), queues (list), assistants (list), flows (list) | Draft | See the receptionist, Edit the receptionist | hq receptionists set-transfers |
| enable_tool | Turn on one of the receptionist's tools, with its settings Takes: id (text, required), key (text, required), requireVerification (yes or no), fillerPhrase (text), messageMode (text), notifyTeam (yes or no), emailTo (list), textTo (list), alsoNotifyOwners (yes or no), voicemailBox (text), voicemailGreeting (text), extension (text), numbers (list), defaultNumber (text), assistants (list), flows (list), queues (list), ticketType (text), ticketQueue (text), extensions (list), textStaff (yes or no), callerNumberOnly (yes or no), anyAddress (yes or no), lookUpAnyNumber (yes or no), calendars (list), services (list), slotsOffered (number), confirmByText (yes or no), confirmByEmail (yes or no), allowedTags (list) | Draft | See the receptionist, Edit the receptionist | hq receptionists enable-tool |
| configure_tool | Change a tool's settings without turning it on or off Takes: id (text, required), key (text, required), requireVerification (yes or no), fillerPhrase (text), messageMode (text), notifyTeam (yes or no), emailTo (list), textTo (list), alsoNotifyOwners (yes or no), voicemailBox (text), voicemailGreeting (text), extension (text), numbers (list), defaultNumber (text), assistants (list), flows (list), queues (list), ticketType (text), ticketQueue (text), extensions (list), textStaff (yes or no), callerNumberOnly (yes or no), anyAddress (yes or no), lookUpAnyNumber (yes or no), calendars (list), services (list), slotsOffered (number), confirmByText (yes or no), confirmByEmail (yes or no), allowedTags (list) | Draft | See the receptionist, Edit the receptionist | hq receptionists configure-tool |
| disable_tool | Turn off one of the receptionist's tools Takes: id (text, required), key (text, required) | Draft | See the receptionist, Edit the receptionist | hq receptionists disable-tool |
| discard_receptionist_draft | Throw away the receptionist's unpublished changes Takes: id (text, required) | Draft | See the receptionist, Edit the receptionist | hq receptionists discard-draft |
| receptionist_test | Try the receptionist in text, with no call and no side effects Takes: id (text, required), messages (list, required), live (yes or no), afterHours (yes or no) | Draft | See the receptionist, Edit the receptionist | hq receptionists test |
| kb_add_document | Add a document to the receptionist's knowledge Takes: id (text, required), title (text), text (text), url (text), knowledgeBase (text) | Changes, can be undone | See the receptionist, Edit the receptionist | hq receptionists kb-add |
| kb_remove_document | Remove a document from a knowledge base Takes: id (text, required) | Changes, can be undone | See the receptionist, Edit the receptionist | hq receptionists kb-remove |
| kb_reindex | Read a knowledge document again Takes: id (text, required) | Changes, can be undone | See the receptionist, Edit the receptionist | hq receptionists kb-reindex |
| publish_receptionist | Put the receptionist's draft live Takes: id (text, required), message (text), summary (text) | Needs approval | See the receptionist, Put the receptionist live | hq receptionists publish |
| bind_number | Point a phone number at the receptionist Takes: id (text, required), number (text, required), summary (text) | Needs approval | See the receptionist, Edit the receptionist, Manage call routing | hq receptionists bind-number |
Phone system
Numbers, extensions, emergency calling and texting setup. An app gets these tools when you allow Numbers and extensions, Emergency calling.
| Tool | What it does | Kind | Permissions it needs | Command |
|---|---|---|---|---|
| setup_status | What is left to set up, what each gap blocks, and where to fix it | Reads | Manage general settings | hq org setup-status |
| diagnose | Why a phone didn't ring: a number, an extension or one call Takes: number (text), extension (text), call (text) | Reads | Buy, port and release phone numbers, See every call | hq org diagnose |
| numbers | The organization's phone numbers: where each rings, E911 and texting | Reads | Buy, port and release phone numbers | hq phones list |
| number_search | Find numbers that can be bought, with their monthly price Takes: areaCode (text), city (text), state (text), contains (text), startsWith (text), endsWith (text), tollFree (yes or no), limit (number) | Reads | Buy, port and release phone numbers | hq phones search |
| number_routing | Point a number's calls at a flow, an extension or a queue; answers undo Takes: number (text, required), to (text, required), target (text) | Changes, can be undone | Manage call routing | hq phones route |
| number_label | Rename a number (its label); answers undo Takes: number (text, required), label (text, required) | Changes, can be undone | Buy, port and release phone numbers | hq phones label |
| buy_number | Ask to buy a number (goes to the Approvals list) Takes: phoneNumber (text, required), label (text), summary (text) | Needs approval | Buy, port and release phone numbers | hq phones buy |
| release_number | Ask to release a number back to the carrier (goes to the Approvals list) Takes: number (text, required), reason (text), summary (text) | Needs approval | Buy, port and release phone numbers | hq phones release |
| port_number | Ask to start moving numbers in from another carrier (a port-in draft) Takes: numbers (list, required), losingCarrier (text, required), accountNumber (text), authorizedName (text, required), entityName (text), billingPhoneNumber (text), street (text), unit (text), city (text), state (text), postalCode (text), notes (text), summary (text) | Needs approval | Buy, port and release phone numbers | hq phones port |
| extensions | Every extension: who it rings, caller ID and no-answer rule Takes: extension (text) | Reads | Manage extensions and desk phones | hq extensions list |
| extension | Change an extension's name, caller ID or no-answer rule; answers undo Takes: extension (text, required), name (text), active (yes or no), ringSeconds (number), noAnswer (text), forwardTo (text), callerId (text) | Changes, can be undone | Manage extensions and desk phones | hq extensions set |
| create_extension | Add an extension Takes: name (text, required), number (text), person (text), kind (text) | Changes, can be undone | Manage extensions and desk phones | hq extensions create |
| devices | Desk phones and softphones: online or not, last seen, what they ring | Reads | Manage extensions and desk phones | hq devices list |
| assign_device | Make a device ring for an extension; answers undo Takes: device (text, required), extension (text, required), priority (number) | Changes, can be undone | Manage extensions and desk phones | hq devices assign |
| unassign_device | Stop a device ringing for an extension; answers undo Takes: device (text, required), extension (text, required) | Changes, can be undone | Manage extensions and desk phones | hq devices unassign |
| e911_status | Is 911 ready, and which numbers and extensions lack an address | Reads | Manage 911 settings | hq emergency status |
Team & billing
Members and roles, billing and integrations. An app gets these tools when you allow Team.
| Tool | What it does | Kind | Permissions it needs | Command |
|---|---|---|---|---|
| audit_log | Who changed what, through which app, and when Takes: person (text), via (text), area (text), since (date and time), until (date and time), limit (number) | Reads | See the audit log | hq audit log |
Was this helpful?
