CRM
Enter a valid instance URL (https:// is required unless it is localhost).
cinatra install cinatra-ai/crm-connector
CRM Connector
Provider-agnostic CRM facade for Cinatra. Exposes 15 crm_* MCP tools (contacts, accounts, lists) that route to the registered CRM provider, so agents write CRM-agnostic code regardless of which CRM backend is installed.
Purpose. Agents call crm_contact_*, crm_account_*, and crm_list_* without coupling to a specific CRM. The connector normalises provider shapes into Cinatra's shared types and keeps cinatra.objects pointer rows in sync after each write.
Install. Add this connector via the marketplace. A CRM provider extension (such as Twenty CRM) must also be installed; without one, the connector returns a descriptive error on first call. No connector-level configuration is required — CRM credentials are managed by the provider extension.
Usage. The 15 crm_* tools include crm_contact_search { query }, crm_contact_create { name, email?, title?, accountId? }, crm_account_search { query }, and crm_list_search { query, objectType? }. Create and update calls write both the provider record and a cinatra.objects pointer row; failures are retried via a durable background job (up to 5 attempts, exponential backoff).
API contract. Contacts: id, name, email, title, accountId. Accounts: id, name, domainName. Lists: id, slug, name, objectType (contact | account). Shapes live in @cinatra-ai/sdk-extensions.
Development. Run pnpm install && pnpm test. Run node extension-kind-gate.mjs to validate before a pull request. Source is in src/; server entry is src/register.ts.
Troubleshooting. "No CRM provider registered" — activate a provider extension on the instance. Pointer-repair failures log to stderr as [POINTER_REPAIR_FALLBACK] JSON for manual replay.
Works with
- Twenty CRM connector (
@cinatra-ai/twenty-connector) — the only provider currently supported
Capabilities
- Provider-agnostic verbs — agents call
crm_contact_*/crm_account_*/crm_list_*regardless of CRM backend - Pointer-row coupling — writes update
cinatra.objectspointer and the CRM provider in one handler - Cinatra-shaped types — provider shapes collapse to Cinatra's shared
contact/account/listtypes at the facade - Durable pointer repair — failed pointer writes retried via BullMQ with exponential backoff and a structured stderr fallback
- Provider-swap ready — the facade indirection allows adding new CRM providers without changing the agent call-sites
- refactor: adopt ctx.authSession + ctx.jobs host ports via a deps slot (cinatra#172 Stage H1) (#16)
- ci(release): grant contents: write + pin reusable workflow to .github HEAD (#17)
- ci: repin reusable release workflow (immutable-safe decoration + corrected build-input provisioning) (#18)
- release: crm-connector v0.1.1 (republish on corrected serverEntry build pipeline) (#19)
- Initial release.
- Unreleased
- fix(test): crm-contact-finder asserts the real extension import paths (../components/ui + @cinatra-ai/sdk-ui) (#1)
- ci: adopt source-leak-gate (#2)
- ci: adopt source-leak-gate (#3)
- chore: add .gitignore (#4)
- ci: adopt org gates — SHA-pin all remote uses: refs, bump source-leak-gate to v0.1.0, add actions-pinned + gitignore gate callers (#5)
- chore: keep internal planning notes untracked (#6)
- Split the chat-widget manifest into a pure-data module (widgets/manifest.ts) (#7)
- Add package exports map for the consumed subpaths (incl. ./widgets/manifest) (#8)
- chore: npm files allowlist + export-ignore packaging hygiene (#9)
- ci: adopt the org ui-design-system gate (#10)
- serverEntry register(ctx): expose the CRM integration surfaces as capabilities (cinatra#7 P721) (#11)
- fix(tests): type the saveObject mock parameter (host tsgo strictness) (#12)
- feat: register the crm-list-reader capability surface (cinatra#151 Stage 4) (#13)
- chore: Configure Renovate (#14)
- ci: add truthful-attribution-gate in WARN (advisory) mode (#20)
- ci: adopt the reusable extension->host IoC conformance gate (org-wide rollout) (#21)
- ci: tag-driven GitHub release on v* (#22)
- ci: adopt secret-scan-gate (#23)
- docs(readme): expand README to the org standard (#24) (#25)
- ci(ui-gate): ramp raw-JSX block to error (#26)
- ci: adopt source-leak-gate (#27)
- ci: adopt source-leak-gate (#28)
- ci(ui-gate): re-vendor preset with Block-C (dynamic-import ban) + bump pin to v0.1.1 (#29)
- chore: strip private engineering-tracker refs from public source (#30)
- chore: strip private tracker references from workflow comments (#33)
- chore(manifest): backfill cinatra.sdkAbiRange "^2" (#34)
- ci(release): pin reusable-extension-release to gated v0.1.1 (release-approval wall) (#35)
- chore: add cinatra.vendor and displayName connector metadata (#36)
- chore(deps): declare cinatra.consumes for closure-gate enrollment (#37)
More from Cinatra
A short, outline-shaped note that captures a future blog post before anyone writes it. Blog Ideas hold a working title, an angle, a few…
Enter a valid instance URL (https:// is required unless it is localhost).
cinatra install cinatra-ai/blog-idea-artifact
Run the platform's policy scanners against an agent definition and report what they find. The agent vets a definition for hardcoded secrets, untrusted URLs,…
Enter a valid instance URL (https:// is required unless it is localhost).
cinatra install cinatra-ai/lint-policy-agent
Turn a company name or website into one clean, deduplicated account in your workspace. Hand the agent whatever you know — a name, a…
Enter a valid instance URL (https:// is required unless it is localhost).
cinatra install cinatra-ai/company-discovery-agent
Plug Apify's actor catalogue into every Cinatra agent. Once connected, any agent that needs to scrape, crawl, or extract data can reach for an…
Enter a valid instance URL (https:// is required unless it is localhost).
cinatra install cinatra-ai/apify-connector
Let Cinatra agents read, draft, and publish content on your Drupal sites. Connect one or more Drupal instances and your agents can browse recent…
Enter a valid instance URL (https:// is required unless it is localhost).
cinatra install cinatra-ai/drupal-mcp-connector
A security-review helper that sits beside the agent-authoring chat experience. It reads a draft agent definition and flags the fuzzy risks a deterministic linter…
Enter a valid instance URL (https:// is required unless it is localhost).
cinatra install cinatra-ai/security-reviewer-agent
Reviews
There are no reviews yet.