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.

Updated October 29, 20263 min readFor owners and admins

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.

  1. Make sure Allow AI apps is on under Settings → Inbox & email. See Use ChatGPT, Claude or another AI app with Hey Quad.
  2. On the same page, find AI apps may change settings.
  3. 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

  1. Copy the address shown under Address to add in the AI app: https://mcp.heyquad.com/mcp/admin.
  2. In your AI app, add a custom connector or MCP server with that address. Use a separate connector from the Business one.
  3. 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.

ToolWhat it doesKindPermissions it needsCommand
crm_setupThe CRM's whole setup, with ids: types, stages, fields (enabled or not), lifecycle and tags.ReadsSet up the CRMhq crm-setup schema
work_typeCreate 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 undoneSet up the CRMhq crm-setup work-type
work_stagesSet a work type's stages, in order; answers `undo`.
Takes: type (text, required), stages (list, required)
Changes, can be undoneSet up the CRMhq crm-setup stages
record_typeCreate or change a contact or company type (Vendor, Partner…); answers `undo`.
Takes: type (text), label (text), appliesTo (text)
Changes, can be undoneSet up the CRMhq crm-setup record-type
fieldAdd 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 undoneSet up the CRMhq crm-setup field
field_orderSet the order of an object's fields; answers `undo`.
Takes: object (text, required), keys (list, required)
Changes, can be undoneSet up the CRMhq crm-setup field-order
lifecycle_stageAdd or change a contact lifecycle stage (Lead, Customer…); answers `undo`.
Takes: stage (text), label (text), color (text), isDefault (yes or no)
Changes, can be undoneSet up the CRMhq crm-setup lifecycle-stage
tagRename 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 undoneSet up the CRMhq crm-setup tag
crm_deletePropose 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 approvalSet up the CRMhq 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.

ToolWhat it doesKindPermissions it needsCommand
flowsList the org's call flows: status, the numbers each answers, the last publish.
Takes: includeArchived (yes or no), kind (text)
ReadsSee call flowshq flows list
flowRead one call flow: the live definition, the draft, what uses it, recent publishes.
Takes: flow (text, required)
ReadsSee call flowshq flows get
flow_catalogThe node types a flow can use: fields, required fields, options, events and docs.
Takes: type (text)
ReadsSee call flowshq flows catalog
validate_flowCheck a flow's draft with the publish validator (errors block publishing).
Takes: flow (text, required)
ReadsSee call flowshq flows validate
publish_flow_previewWhat publishing the draft would change: nodes added, removed and changed, numbers affected.
Takes: flow (text, required)
ReadsSee call flowshq flows preview
create_flowCreate a call flow: blank, from a template, or from a definition (saved as its draft).
Takes: name (text, required), template (text), definition (JSON object)
DraftSee call flows, Edit call flowshq flows create
duplicate_flowCopy a call flow (its live version) into a new flow that nothing routes to.
Takes: flow (text, required), name (text)
DraftSee call flows, Edit call flowshq flows duplicate
edit_flowEdit 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)
DraftSee call flows, Edit call flowshq flows edit
discard_flow_draftThrow away a flow's unpublished draft.
Takes: flow (text, required)
DraftSee call flows, Edit call flowshq flows discard
rename_flowRename a flow (in its draft; the name goes live when the flow is published).
Takes: flow (text, required), name (text, required)
DraftSee call flows, Edit call flowshq flows rename
publish_flowPublish 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 approvalSee call flows, Publish call flowshq flows publish
revert_flowMake 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 approvalSee call flows, Publish call flowshq flows rollback
set_default_flowMake a flow the org's default flow (an AI app's request goes to the Approvals list).
Takes: flow (text, required)
Needs approvalSee call flows, Publish call flowshq flows set-default
archive_flowArchive a flow nothing routes to (an AI app's request goes to the Approvals list).
Takes: flow (text, required)
Needs approvalSee call flows, Edit call flowshq flows archive
receptionistsList the AI receptionists
Takes: includeArchived (yes or no)
ReadsSee the receptionisthq receptionists list
receptionistOne AI receptionist, described part by part
Takes: id (text, required), live (yes or no)
ReadsSee the receptionisthq receptionists get
receptionist_kbKnowledge bases and their documents, or search them
Takes: receptionist (text), search (text)
ReadsSee the receptionisthq receptionists kb
receptionist_usageHow a receptionist's calls went
Takes: id (text, required), days (number)
ReadsSee the receptionisthq receptionists usage
kb_gapsQuestions callers asked that the knowledge didn't answer
Takes: id (text, required), days (number)
ReadsSee the receptionisthq receptionists kb-gaps
set_greetingChange what the receptionist says first
Takes: id (text, required), text (text, required), callerCanInterrupt (yes or no)
DraftSee the receptionist, Edit the receptionisthq receptionists set-greeting
set_personaChange who the receptionist is and how it behaves
Takes: id (text, required), name (text), businessName (text), role (text), tone (list), instructions (text)
DraftSee the receptionist, Edit the receptionisthq receptionists set-persona
set_hours_behaviorChoose its business hours and what it does after hours
Takes: id (text, required), schedules (list), checkHours (yes or no), afterHours (text), afterHoursNote (text)
DraftSee the receptionist, Edit the receptionisthq receptionists set-hours
set_transfer_targetsChoose where the receptionist may send callers
Takes: id (text, required), extension (text), numbers (list), queues (list), assistants (list), flows (list)
DraftSee the receptionist, Edit the receptionisthq receptionists set-transfers
enable_toolTurn 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)
DraftSee the receptionist, Edit the receptionisthq receptionists enable-tool
configure_toolChange 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)
DraftSee the receptionist, Edit the receptionisthq receptionists configure-tool
disable_toolTurn off one of the receptionist's tools
Takes: id (text, required), key (text, required)
DraftSee the receptionist, Edit the receptionisthq receptionists disable-tool
discard_receptionist_draftThrow away the receptionist's unpublished changes
Takes: id (text, required)
DraftSee the receptionist, Edit the receptionisthq receptionists discard-draft
receptionist_testTry 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)
DraftSee the receptionist, Edit the receptionisthq receptionists test
kb_add_documentAdd a document to the receptionist's knowledge
Takes: id (text, required), title (text), text (text), url (text), knowledgeBase (text)
Changes, can be undoneSee the receptionist, Edit the receptionisthq receptionists kb-add
kb_remove_documentRemove a document from a knowledge base
Takes: id (text, required)
Changes, can be undoneSee the receptionist, Edit the receptionisthq receptionists kb-remove
kb_reindexRead a knowledge document again
Takes: id (text, required)
Changes, can be undoneSee the receptionist, Edit the receptionisthq receptionists kb-reindex
publish_receptionistPut the receptionist's draft live
Takes: id (text, required), message (text), summary (text)
Needs approvalSee the receptionist, Put the receptionist livehq receptionists publish
bind_numberPoint a phone number at the receptionist
Takes: id (text, required), number (text, required), summary (text)
Needs approvalSee the receptionist, Edit the receptionist, Manage call routinghq 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.

ToolWhat it doesKindPermissions it needsCommand
setup_statusWhat is left to set up, what each gap blocks, and where to fix itReadsManage general settingshq org setup-status
diagnoseWhy a phone didn't ring: a number, an extension or one call
Takes: number (text), extension (text), call (text)
ReadsBuy, port and release phone numbers, See every callhq org diagnose
numbersThe organization's phone numbers: where each rings, E911 and textingReadsBuy, port and release phone numbershq phones list
number_searchFind 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)
ReadsBuy, port and release phone numbershq phones search
number_routingPoint 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 undoneManage call routinghq phones route
number_labelRename a number (its label); answers undo
Takes: number (text, required), label (text, required)
Changes, can be undoneBuy, port and release phone numbershq phones label
buy_numberAsk to buy a number (goes to the Approvals list)
Takes: phoneNumber (text, required), label (text), summary (text)
Needs approvalBuy, port and release phone numbershq phones buy
release_numberAsk to release a number back to the carrier (goes to the Approvals list)
Takes: number (text, required), reason (text), summary (text)
Needs approvalBuy, port and release phone numbershq phones release
port_numberAsk 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 approvalBuy, port and release phone numbershq phones port
extensionsEvery extension: who it rings, caller ID and no-answer rule
Takes: extension (text)
ReadsManage extensions and desk phoneshq extensions list
extensionChange 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 undoneManage extensions and desk phoneshq extensions set
create_extensionAdd an extension
Takes: name (text, required), number (text), person (text), kind (text)
Changes, can be undoneManage extensions and desk phoneshq extensions create
devicesDesk phones and softphones: online or not, last seen, what they ringReadsManage extensions and desk phoneshq devices list
assign_deviceMake a device ring for an extension; answers undo
Takes: device (text, required), extension (text, required), priority (number)
Changes, can be undoneManage extensions and desk phoneshq devices assign
unassign_deviceStop a device ringing for an extension; answers undo
Takes: device (text, required), extension (text, required)
Changes, can be undoneManage extensions and desk phoneshq devices unassign
e911_statusIs 911 ready, and which numbers and extensions lack an addressReadsManage 911 settingshq emergency status

Team & billing

Members and roles, billing and integrations. An app gets these tools when you allow Team.

ToolWhat it doesKindPermissions it needsCommand
audit_logWho changed what, through which app, and when
Takes: person (text), via (text), area (text), since (date and time), until (date and time), limit (number)
ReadsSee the audit loghq audit log