Skip to content

Initial Setup

Connecting an AI assistant takes a few minutes. You add the platform as a custom connector in your assistant, then approve the connection with your own platform login and two-factor authentication.

  • The MCP module enabled on your platform. If it is not, contact support.
  • MCP access on your account. Your data controller grants this per category of work, using the Access MCP user flags described in What you can grant. You only see the categories your account holds when approving a connection.
  • Two-factor authentication (2FA) set up on your account. If you have not enrolled yet, use Setup 2FA on the main menu first.
  • An MCP-capable assistant. Claude requires a plan that supports custom connectors; ChatGPT requires Developer mode and a plan that includes custom connectors. Command-line and desktop assistants such as Claude Code and Codex CLI connect the same way. If the connection will reach personal customers, that plan also needs to be a commercial one: see Consumer accounts are not business accounts.

Open the AI Assistants (MCP) page from the Advanced menu in the platform. It shows the connector URL for your platform, which is the only detail your assistant needs.

The page also lists your existing connections, and will tell you if your account is missing MCP access or 2FA.

  1. In claude.ai or Claude Desktop, open Settings -> Connectors and choose Add custom connector.
  2. Enter the connector URL shown on your AI Assistants (MCP) page.
  3. Add the connector, then choose Connect. A browser window will open on your platform: sign in as usual, enter your 2FA code, and choose Approve.
  4. In a conversation, enable the connector from the tools menu and ask a reporting question - for example, “Show invoice totals by month for this year”.
  1. In ChatGPT, open Settings -> Security and Login and enable Developer mode (custom connectors need a plan that includes them).
  2. Open Plugins in the left hand menu, choose + at the top right to add an MCP connector, and enter the connector URL shown on your AI Assistants (MCP) page as the MCP server URL.
  3. Select OAuth authentication and create the connector. No client ID or other advanced settings are needed.
  4. Connect: a browser window will open on your platform. Sign in as usual, enter your 2FA code, and choose Approve.
  5. In a conversation, enable the connector from the tools menu before asking your reporting question.

ChatGPT moves these menus around fairly often. If the options above are missing, look for Developer mode and MCP or custom connectors in nearby settings sections.

Connecting from Claude Code, Codex and Other Assistants

Section titled “Connecting from Claude Code, Codex and Other Assistants”

Command-line and desktop assistants connect with the same URL. During sign-in a browser window opens on your platform for the usual login, 2FA and approval, then returns to a temporary address on your own computer, which the platform accepts automatically.

  • Claude Code: run claude mcp add --transport http billing <connector URL>, then use /mcp inside a session to sign in.
  • Codex CLI: run codex mcp add billing --url <connector URL>, then codex mcp login billing.
  • Any other MCP-capable assistant: give it the connector URL, and it will send you through the same sign-in and approval.

Assistants that ask for an OAuth client ID during setup can use the ID shown at the foot of your AI Assistants (MCP) page, with the secret left blank.

When your assistant connects for the first time, the platform shows an approval page confirming who the connection will act as, with a tickbox for each thing you can grant.

Permissions are grouped by the kind of work being done, rather than by which records get touched. This means you can let an assistant chase overdue accounts without also letting it cease live services.

Read access (offered pre-ticked):

GrantWhat it allows
Reporting - KPIsAggregate figures only, no individual records
General Records - ReadLook up and search individual records
Billing Operations - ReadRead billing runs, pre-billing checks, previews, CDR files and billing errors; requires General Records read
Pre-Sales - ReadRead deals, proposals and their context
Credit Control - ReadRead cases and overdue-account context

Write and send access (every one unticked by default):

GrantWhat it allowsNeeds
General Records - Routine record keepingCreate and update everyday recordsGeneral Records read
Pre-Sales - Manage deals and proposalsManage deals, including sending a proposalPre-Sales read
Credit Control - Manage casesCases, promises, arrangements and case communicationsCredit Control read
Customer Interaction - SendSend bills, CDRs, correspondence and customer linksGeneral Records read
Pre-Sales OutreachCampaigns and automated sequencesPre-Sales read
Customer and Service LifecycleCreate, activate, suspend, reinstate and cease live servicesGeneral Records read
FinancialRaise charges and invoices, collect payments, refund and write off balancesGeneral Records read
PricingChange tariffs, price books, discount plans and call types, including bulk price increasesGeneral Records read
Billing Operations - WriteConfirm pre-billing checks, request bills and reports, and manage CDR processingBilling Operations read

Data-scope access (every one unticked by default):

GrantWhat it allowsNeeds
Personal CustomersInclude records for customers not explicitly classified as businesses-
Call Data - Aggregate summariesRead-only call totals: call counts, duration, data usage, retail and wholesale cost-
Call Data - Full per-call detailRead-only access to individual call records-

Two boundaries are worth knowing, because they are not where people assume:

  • Sending a proposal is Pre-Sales, not Customer Interaction. A connection set up for sales work can send proposals without being able to email bills.
  • Sending a bill is Customer Interaction, and it carries the collection behaviour configured for that bill. You do not need to grant Financial for a bill to be sent and collected in the normal way; Financial is for raising charges, refunds and write-offs.
  • Reading pricing rides General Records read; only changing it needs Pricing. A connection with General Records read can look up tariffs, fixed fee tariffs, discount plans, feature discount schemes, call types and carrier tariffs. The Pricing grant is what lets it change them or run a price increase.

Without the Personal Customers grant, a connection only sees individual records belonging to customers whose customer class is marked as a business. Records for personal customers, and for customers whose class does not say either way, are left out of record lookups, lists and searches.

The boundary covers reporting totals as well as individual records: a connection without this grant gets KPI figures for business customers only, which is what its record lookups and groupings report for the same connection. The response says which basis a figure is on, and the assistant is told to state it when quoting one. Grant Personal Customers where the connection needs platform-wide totals.

This applies to assistants alone. The KPI endpoint reports platform-wide figures, so the two answer the same question differently where the grant is absent.

Consumer accounts are not business accounts

Section titled “Consumer accounts are not business accounts”

Paying for a subscription on the company card does not make it a commercial account. Individual subscriptions are consumer plans whoever settles the bill, and they are not suitable for customers’ personal data:

Not suitable (consumer plans)Suitable (commercial plans)
Claude Free, Pro, MaxClaude Team, Enterprise
ChatGPT Free, Go, Plus, ProChatGPT Business, Enterprise, Edu

The difference is the contract, not the price. A commercial plan is bought by your organisation, comes with a Data Processing Agreement naming your organisation as controller, keeps your conversations out of model training by default, and gives your administrators control over retention and access. An individual plan gives the person, not your organisation, the relationship with the provider, and the account leaves with them.

A commercial plan is the prerequisite, not the whole job: check that the Data Processing Agreement is actually in place. The two providers differ here.

  • OpenAI expect you to execute the DPA yourself. Signing up for ChatGPT Business does not put one in place: someone in your organisation has to complete the form on OpenAI’s Data Processing Addendum page, giving your legal entity and signatory details, before personal data goes anywhere near the account. A negotiated Enterprise Agreement may already include it, in which case check the signed contract rather than assuming either way.
  • Anthropic incorporate their DPA into the Commercial Terms of Service automatically, so accepting those terms with a Claude Team or Enterprise plan accepts the DPA with them. Nothing separate needs signing. See Anthropic’s note on viewing the DPA.

Confirm the current position with the provider and your own data controller rather than relying on this page: both providers revise their terms from time to time.

If you are not certain which plan an account is on, or whether a DPA has been executed, treat it as consumer and leave Personal Customers unticked. The business-only categories still work perfectly well without it, and your data controller can confirm the position before it is granted.

Call access is separate from ordinary record access, and both grants are read-only.

  • Aggregate summaries let the assistant total calls over a date range and group them by period, direction, call type, rating period, number type, dealer or site. Platform, dealer and site totals need nothing else. Summaries tied to a specific customer, number, service, feature, invoice or transaction also need General Records read, and the Personal Customers grant where that customer is a personal one.
  • Full per-call detail lets the assistant list and open individual call records. Calls belonging to personal customers are excluded unless Personal Customers is also granted.

Your own call permissions still apply on top: an account that cannot see call records in the platform cannot see them through an assistant either.

Billing Operations - Read requires General Records - Read. It lets an assistant review billing preparation and progress. Billing Operations - Write requires that read grant and is unticked by default.

An administrator must allow these categories on both your user account and the platform’s MCP settings user. Your normal billing-run, billing-error and CDR-file permissions also apply.

Carrier traffic history requires Billing Operations read and Call Data - Aggregate summaries. See Working with billing runs for available tasks and examples.

A connection can only do something if all three of these permit it:

  1. Your own user account holds the category
  2. The connection was granted the category at approval
  3. The platform’s MCP settings user permits the category, which acts as a site-wide kill switch

On top of that, your ordinary object permissions still apply. Granting Financial does not let an assistant touch records you could not touch yourself.

There is a fourth thing that decides the tick list, and it is not a permission: the connecting application chooses which access levels to ask for, and only what it asks for can be offered. Applications re-use the access granted to an earlier connection and cache what the platform advertised when the connector was first added, so a level you genuinely hold routinely goes missing without explanation.

The approval page now says so. Where the request is narrower than what your account and the platform could grant, it names the levels the application did not ask for, and states that the list is the application’s request rather than your permissions. To be offered them, remove the connection in the application and add it again. No cap moves: a level the application did not ask for still cannot be granted, because a token may only carry what was requested.

If a level is still missing after reconnecting, it is one of the three above: your account does not hold the Access MCP flag for it, or the platform’s MCP settings user does not permit it. Your data controller can check both.

Enter the current code from your authenticator app and choose Approve. If you did not initiate the connection from your assistant, choose Deny.

You will receive a confirmation email whenever a connection is approved with your account. If you receive one you do not recognise, revoke the connection straight away and reset your password and 2FA.

  • Using AI assistants - example questions, what the assistant can see, and managing your connections