Build with AI

Build a custom CRM with an AI coding agent

Connect Claude Code, Cursor, or another AI coding agent to Workspace369, then ask it to build your own CRM screens on top of your clients, proposals, and invoices.

View as Markdown

You can ask an AI coding agent to build a custom CRM, client portal, or internal dashboard, and have it use Workspace369 as the system of record. The agent reads and writes your real clients, proposals, contracts, invoices, payments, and bookings through the Workspace369 MCP server. It does not need its own database for those records.

The short version: an admin turns MCP on, you connect the agent with one URL, and you paste a build prompt. Anything the agent wants to send to a client waits for your approval in the Workspace369 app.

Before you begin

  1. A workspace admin must turn MCP on. It is off by default. See Enable MCP and manage connected apps.
  2. Decide who the agent acts as. It acts as you, with your permissions, and never more. Give it a view-only connection first if you only want a dashboard.
  3. Decide where the code runs. Anything with a secret in it must run on a server, not in a web page. See Keep tokens on the server.

Connect your coding agent

The server URL is the same for every agent:

https://mcp.workspace369.com/mcp

Claude Code

Add the server, then sign in:

claude mcp add --transport http workspace369 https://mcp.workspace369.com/mcp
  1. Start Claude Code in your project.
  2. Run /mcp.
  3. Choose workspace369 and follow the browser steps to sign in and pick the workspace.
  4. Approve only the access the project needs.

Add --scope project to share the entry with your team through .mcp.json, or --scope user to use it in every project. Do not put a token in a file you commit.

For a script or a remote agent that cannot open a browser, create a personal access token and pass it as a header:

claude mcp add --transport http workspace369 https://mcp.workspace369.com/mcp \
  --header "Authorization: Bearer $WORKSPACE369_TOKEN"

Cursor and Windsurf

Both read an mcpServers entry from their MCP settings file. The exact entry is in Connect an AI app to your workspace. Save it, then sign in when the app asks.

ChatGPT and Claude

Use the custom connector option in each app and paste the server URL. These apps are good for asking questions about your data and drafting records. Use a coding agent when you want working code. The steps are in Connect an AI app to your workspace.

Check the connection

Ask the agent a read-only question first:

Use the workspace369 tools to tell me which invoices are overdue and which clients have a follow-up due today.

If it answers with your data, the connection works. If it says the tools are missing, see If something does not work.

Give the agent the build prompt

Paste this into your agent. Edit the first line to describe your business.

I run a [kind of business]. Build a small internal CRM web app for my team.

Use the workspace369 MCP server as the only source of truth for clients,
proposals, contracts, invoices, payments, and bookings. Do not create your
own tables for these records.

First, list the available workspace369 tools and read the descriptions of the
ones you plan to use. Then plan the screens before writing code.

Screens:
1. Client list with search and a "follow up today" filter.
2. Client page with contacts, open proposals, invoices, payments, and notes.
3. A "new client" form.

Rules:
- Read data through the tools, from server code only.
- Never put an access token in browser code, logs, or the repository. Read it
  from an environment variable on the server.
- Do not send anything to a client directly. For sends, create the draft and
  tell me it is waiting for my approval in Workspace369.
- Handle errors: a refused call returns an error result with a reason, and a
  rate-limited call returns 429 with a Retry-After header.

More prompts, including proposals with deposits and importing contacts, are in Prompts and AGENTS.md for coding agents.

Keep tokens on the server

A web page that runs in a visitor's browser cannot hold a secret. Anything in it can be read.

  • Put your Workspace369 connection in server code: an API route, a backend function, or a script. Your pages call that code, and that code calls Workspace369. See Call Workspace369 from your app over HTTPS.
  • Store a personal access token in an environment variable or a secret manager. Never commit it.
  • Create the token with only the scopes the app needs. A dashboard needs view scopes only.
  • Revoke the token when the project ends. Rotation steps are in Personal access tokens.
  • The MCP server only accepts browser requests from a short list of AI app websites. A call made from your own page code is refused with a 403.

What waits for your approval

Calls that send something to a person, or that change something a person relies on, are held. The agent gets a link, and nothing is sent until you approve it in the Workspace369 app. That covers sending invoices, proposals, and contracts, replying to leads, sending messages, and turning a workflow on. The full list is in How MCP access is controlled and billed.

You can turn on Send without asking for a connection you trust. Keep it off while the agent is still being built and tested.

What the agent cannot do

  • It cannot delete clients, invoices, proposals, projects, tasks, or events.
  • It cannot invite or remove team members or change permissions.
  • It cannot edit an existing workflow.
  • It cannot read or write anything outside the one workspace it is connected to.

Every call is recorded in the activity log, and each one uses part of the workspace's monthly AI usage allowance. See How MCP access is controlled and billed.

Next steps

Was this article useful?

Your answer helps us decide what to clarify next.