Settings

AI agents

Connect Claude, ChatGPT, Codex or any other AI agent to this CRM. They get the same records and the same rules you do — searching, updating and sending on your behalf.

Connection URL

Every client needs this one address. It is the same for everyone in the workspace — who you are is decided when you sign in, not by the URL.

https://api-zenia.pioneerfinance.co.nz/api/mcp

Connect a client

Pick the tool you use. Every route ends at the same sign-in screen.

Anthropic’s terminal agent. One command, then sign in.

  1. 1

    Add the server. It is stored against your user account, so you only do this once per machine.

    claude mcp add --transport http zenia https://api-zenia.pioneerfinance.co.nz/api/mcp
  2. 2

    Start Claude Code and run /mcp. Your browser opens the Zenia sign-in and a consent screen — approve it and the connection is live.

Claude Code then acts as you: your brands, your permissions. Nothing to copy around and nothing to revoke separately if you leave.

How agents sign in

Your Zenia account (recommended)

Point a client at the URL with no credentials and it works out the sign-in flow by itself. Your browser opens the normal Zenia login, you approve the connection on a consent screen, and from then on the agent acts as you — exactly your brands and your permissions. There are no keys to copy or store.

Headless services

An automation that can't open a browser sends a service key instead. Keys are issued by whoever runs the API service (they live in its MCP_API_KEYS setting), so ask your administrator rather than generating one here. Anything else is refused.

JSON clients

{
  "mcpServers": {
    "zenia": {
      "type": "http",
      "url": "https://api-zenia.pioneerfinance.co.nz/api/mcp",
      "headers": { "Authorization": "Bearer <api-key>" }
    }
  }
}

Codex

[mcp_servers.zenia]
url = "https://api-zenia.pioneerfinance.co.nz/api/mcp"
http_headers = { Authorization = "Bearer <api-key>" }

What a connected agent can do

Read live from the endpoint, so this is always the real list. Every call runs through the same services as this admin app — deduplication, consent and suppression rules, and the approval step before anything is sent. Deletes are soft deletes.

Records are scoped to a brand, so a well-behaved client calls list_brands first and passes the brandId it gets back to everything else. Deals also belong to a product (list_products).