Skip to content

For agents

For agents

Markdown version

If you are an AI agent working for a person: this page says what you can do in Closefinch on your own, what waits for your principal, what it costs, and how it fails. It's generated from the platform's own tool list.

Getting in

  • MCP: https://api.closefinch.com/mcp (Streamable HTTP). REST: https://api.closefinch.com/v1, spec at https://www.closefinch.com/openapi.json.
  • Credentials: an API key your principal creates in Settings → API keys (Authorization: Bearer ra_live_…). The key never has more access than the person who made it. Guides per client: quickstarts.
  • No key yet? Create a sandbox: ra sandbox create --host https://api.closefinch.com (or POST /v1/sandbox with a solved sign-up challenge) gives you a sample organization and a limited key at once: CRM and agent scopes, 60 requests a minute, 7 days, and nothing sent outside until a person claims it.
  • Free plan: up to 3 seats, 500 AI credits and 5 recording hours a month, no card (pricing, pricing.json).

Two ways in, two sets of rules

  • Your own key's tools (ra_records_create, ra_records_update, ra_records_archive with confirm, ra_activities_create, ra_api and the rest) act at once, with your key's scopes, like a person in the app. They're for the edits your principal asked you to make.
  • ra_propose runs one platform tool the way an agent does, through the organization's policy. An MCP request counts as outside content, so the strictest rules apply. The lists below are the policy engine's own answer for each tool, called this way.

What runs at once through ra_propose

77 of the 111 platform tools: reads and reasoning inside Closefinch, and writes: new records, notes and tasks, memory, and notifications to teammates. Some of these writes do reach outside or cost money, and are marked: they fetch the web on purpose, as their job (refreshing competitors, rebuilding a profile, qualifying accounts, a paid scrape). Call them only for what your principal asked.

  • account.decide: Record a decision or next best action for an account
  • canvas.save: Save a canvas
  • competitors.refresh: Refresh competitive intelligence (reaches the web)
  • crm.note.create: Add a note
  • crm.task.create: Create a task
  • deals.recovery_draft: File a recovery email for the owner
  • dispatch.page: Page the on-call technician (notifies a teammate at once)
  • memory.save: Save a fact to memory
  • notify.person: Message a teammate (notifies a teammate at once)
  • profile.rebuild: Rebuild the business profile from your site (reaches the web)
  • proof.mine: Mine closed-won deals for proof points
  • qualify.accounts: Qualify accounts against fit questions (reaches the web)
  • recruit.next_batch: Propose the next design-partner outreach
  • segment.stage: Stage a segment
  • segments.build_from_icp: Build segments from the ICP
  • web.scrape_apify: Scrape with an Apify actor (paid) (reaches the web) (paid per call)
  • and these reads: account.plan, activities.search, ads.google.query, ads.linkedin.report, ads.reddit.report, analytics.ga4.report, background.shared, committee.get, cpg.account_health, cpg.action_list, cpg.category_review, crm.analyze_write, crm.record.get, crm.records.search, customers.handoff_note, deals.review, deals.stalled, dispatch.triage, equipment.account_open, equipment.fleet_review, forecast.read, fundraising.pipeline_review, glossary.lookup, graph.neighborhood, home_services.estimates_review, home_services.oncall_review, home_services.triage, icp.check, industrial.rfqs, industrial.slow_movers, kb.read, knowledge.search, meetings.brief, meetings.followthrough, meetings.status, memory.list, personas.match, phones.best, phones.list, pipeline.stalled_deals, prospects.match, quotes.get, quotes.intel, quotes.pipeline, relationships.lookup, sandbox.run, search_console.query, signals.list, signals.why_now, sms.draft_reply, tam.overview, transcripts.read, voice.call_review, voice.caller_context, voice.campaign_progress, voice.catalog, voice.find_times, voice.payment_status, voice.score, voice.verify_caller, warm.paths

What waits for a person

These wait in the approval inbox, and ra_propose returns the approval's link for your principal: anything that reaches outside (web pages, other MCP servers, the browser), sends, and changes to existing records.

  • account.plan.refresh: Refresh the account plan (changes an existing record)
  • ads.campaign_status: Pause or enable an ad campaign (sends outside Closefinch) (changes an existing record)
  • agentmail.send: Send from the agent's mailbox (sends outside Closefinch)
  • browser.act: Click or type in your browser (sends outside Closefinch) (changes an existing record)
  • browser.extract_table: Read a table in your browser (reads outside Closefinch)
  • browser.read: Read a page in your browser (reads outside Closefinch)
  • committee.build: Map the buying committee (changes an existing record)
  • company.changes: Hiring, leadership and tech changes for an account (reads outside Closefinch)
  • crm.record.update: Update a record (changes an existing record)
  • http.get: Fetch a URL (reads outside Closefinch)
  • http.send: Send to a URL (sends outside Closefinch)
  • mcp.call: Act through a connected MCP server (sends outside Closefinch)
  • mcp.read: Read from a connected MCP server (reads outside Closefinch)
  • media.screenshot: Screenshot a public web page (sends outside Closefinch)
  • outbound.dnc.add: Add to the do-not-contact list (changes an existing record)
  • records.account: Public records for an account (reads outside Closefinch)
  • research.brief: Research an account or person (reads outside Closefinch)
  • sandbox.run_net: Run code (allowlisted network) (reads outside Closefinch)
  • segment.append: Add to a segment (changes an existing record)
  • sms.handoff: Hand a text thread to a person (changes an existing record)
  • voice.book_meeting: Book a meeting (sends outside Closefinch)
  • web.read: Read a web page (reads outside Closefinch)
  • web.scrape: Scrape structured data from web pages (reads outside Closefinch)
  • web.search: Search the web or news (reads outside Closefinch)

Checked per call

These are decided for each call, against facts only the call has (who it reaches, the number's consent and quiet hours). Without them they're refused:

  • sms.reply: Answer a text

For live calls and texts only

These belong to voice agents and the texting desk: they act on the person on a live call or thread, need that call, and aren't for an MCP agent: voice.campaign_enroll, voice.campaign_result, voice.payment_link, voice.save_caller, voice.send_booking_confirmation, voice.send_sms, voice.speed_to_lead, voice.take_message, voice.warm_transfer.

Approving is never possible through the API or MCP: it happens in the web app or Slack. See approvals and policy.

What it costs

UnitClosefinchNotes
An API or MCP callNo charge per callRate-limited (below)
AI work (summaries, drafts, agent runs)$0.01 per credit (5,000 for $50)Each run's trace shows its cost; a dry run (ra_runs_start with dry_run: true) shows the plan first
A bot-recorded meeting hour beyond the plan$1.25Imported Zoom, Meet or Teams transcripts use no hours
A seatTeam $35, Pro $79 a month, billed annuallyAgents aren't seats

What others publish for the same kind of usage (checked on the date shown, from their own pages):

ProductPublished usage pricingChecked
AttioCredits per seat per month: 100 / 500 / 1,000 / 2,500 by plan. Packs from 5,000 for $70 to 50,000 for $475 (annual).2026-11-05
HubSpot Sales HubCredits per month: 500 / 3,000 / 5,000 by plan; extra credits $0.01 each.2026-11-05
CloseAI credits 500 to 2,000 a month by plan; calls about $0.02 a minute.2026-11-05
Day.aiFlat per agent; Day.ai says it has no usage pricing. Volume discounts.2026-11-05
FolkEmail-finder, AI-field and research credits.2026-11-05
LightfieldPooled workspace credits; extra capture seat $200.2026-11-05

Paying

You can't pay, and you don't need to. To suggest a paid plan, call ra_billing_upgrade_link (or POST /v1/billing/upgrade-link). It returns a link to the billing page with the plan filled in and tells the organization's owners. An owner reviews it and pays through checkout, and nothing is bought until then. Machine payments (x402, agent payment tokens) aren't accepted: a person always pays.

Limits and errors

  • Rate limit: per key, published in X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset. Past it you get 429 rate_limited with Retry-After (seconds): wait that long, then retry.
  • Errors are { "error": { "code", "message", "fix", "docs" } }: the cause, what to do, and a link to its section of the errors page.

    • bad_request (400): the input didn't validate; details.issues lists each field and what's wrong. Fix the input and send it again.
    • unauthorized (401): no key or a bad one. Ask your principal for a key from Settings → API keys.
    • forbidden (403): the key lacks the scope named in the message, or the route is for the web app only.
    • not_found (404), conflict (409, for example a stale version: read the record again), gone (410).
    • policy_blocked (422): the organization's policy refused it (the kill switch, consent, do-not-contact). Don't retry: tell your principal which rule.
    • unavailable (503): retry after a short wait.
  • Archiving needs confirm: true. A merged record answers moved (301) with the record it was merged into in Location: read that one instead.

A snippet for AGENTS.md, CLAUDE.md or Cursor rules

## Closefinch (CRM)
- MCP server: https://api.closefinch.com/mcp with `Authorization: Bearer $RA_API_KEY` (never write the key into a file).
- Start with ra_whoami to see the organization and scopes.
- Read freely. Your key's own tools (ra_records_update, ra_api…) act at once: use them only for what the user asked.
- For sends, outside requests and changes the user didn't ask for, use ra_propose: they wait for a person's approval. Never try to approve.
- On 429, wait Retry-After seconds. On policy_blocked, stop and report the rule to the user.
- Docs: https://www.closefinch.com/docs (every page also as .md); tools: https://www.closefinch.com/docs/mcp/tools.

Send feedback

Tell us what's broken, confusing or missing on this page, or an idea. It goes to the team that builds the product.

Please don't include passwords or card numbers.
Only to reply about this. Never added to any mailing list.