naftiko: 1.0.0-alpha2 info: label: Supaglue CRM Integration description: Unified workflow capability for building CRM product integrations using Supaglue. Combines the Management API for configuring customer connections and sync settings with the Unified CRM API for reading and writing CRM data (accounts, contacts, leads, opportunities) across Salesforce, HubSpot, Pipedrive, and 15+ other providers. Used by B2B SaaS developers building native CRM integrations into their product. tags: - Supaglue - CRM - Integrations - Salesforce - HubSpot - Unified API created: '2026-05-02' modified: '2026-05-06' binds: - namespace: env keys: SUPAGLUE_API_KEY: SUPAGLUE_API_KEY capability: consumes: - type: http namespace: supaglue-mgmt baseUri: https://api.supaglue.io/mgmt/v2 description: Supaglue Management API authentication: type: apikey key: x-api-key value: '{{SUPAGLUE_API_KEY}}' placement: header resources: - name: customers path: /customers description: Manage integration customers operations: - name: list-customers method: GET description: List customers outputRawFormat: json outputParameters: - name: result type: array value: $. - name: upsert-customer method: PUT description: Upsert customer outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: customer_id: '{{tools.customer_id}}' name: '{{tools.name}}' email: '{{tools.email}}' - name: connections path: /customers/{customer_id}/connections description: Manage customer connections to providers operations: - name: list-connections method: GET description: List customer connections inputParameters: - name: customer_id in: path type: string required: true description: Customer ID outputRawFormat: json outputParameters: - name: result type: array value: $. - name: sync-configs path: /sync_configs description: Manage sync configurations operations: - name: list-sync-configs method: GET description: List sync configs outputRawFormat: json outputParameters: - name: result type: array value: $. - name: syncs path: /syncs/_trigger description: Control sync operations operations: - name: trigger-sync method: POST description: Trigger a sync outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: customer_id: '{{tools.customer_id}}' provider_name: '{{tools.provider_name}}' - name: sync-runs path: /sync-runs description: View sync run history operations: - name: list-sync-runs method: GET description: List sync runs outputRawFormat: json outputParameters: - name: result type: array value: $. - name: magic-links path: /magic_links description: Generate OAuth authentication magic links operations: - name: list-magic-links method: GET description: List magic links outputRawFormat: json outputParameters: - name: result type: array value: $. - name: create-magic-link method: POST description: Create magic link outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: customer_id: '{{tools.customer_id}}' provider_name: '{{tools.provider_name}}' - type: http namespace: supaglue-crm baseUri: https://api.supaglue.io/crm/v2 description: Supaglue Unified CRM API authentication: type: apikey key: x-api-key value: '{{SUPAGLUE_API_KEY}}' placement: header resources: - name: accounts path: /accounts description: CRM account operations operations: - name: list-accounts method: GET description: List accounts inputParameters: - name: x-customer-id in: header type: string required: true description: Customer ID - name: x-provider-name in: header type: string required: true description: Provider name (e.g. salesforce, hubspot) outputRawFormat: json outputParameters: - name: result type: object value: $. - name: create-account method: POST description: Create account inputParameters: - name: x-customer-id in: header type: string required: true - name: x-provider-name in: header type: string required: true outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: record: '{{tools.record}}' - name: contacts path: /contacts description: CRM contact operations operations: - name: list-contacts method: GET description: List contacts inputParameters: - name: x-customer-id in: header type: string required: true - name: x-provider-name in: header type: string required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: create-contact method: POST description: Create contact inputParameters: - name: x-customer-id in: header type: string required: true - name: x-provider-name in: header type: string required: true outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: record: '{{tools.record}}' - name: search-contacts method: POST description: Search contacts inputParameters: - name: x-customer-id in: header type: string required: true - name: x-provider-name in: header type: string required: true outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: filters: '{{tools.filters}}' - name: leads path: /leads description: CRM lead operations operations: - name: list-leads method: GET description: List leads inputParameters: - name: x-customer-id in: header type: string required: true - name: x-provider-name in: header type: string required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: create-lead method: POST description: Create lead inputParameters: - name: x-customer-id in: header type: string required: true - name: x-provider-name in: header type: string required: true outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: record: '{{tools.record}}' - name: opportunities path: /opportunities description: CRM opportunity operations operations: - name: list-opportunities method: GET description: List opportunities inputParameters: - name: x-customer-id in: header type: string required: true - name: x-provider-name in: header type: string required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: create-opportunity method: POST description: Create opportunity inputParameters: - name: x-customer-id in: header type: string required: true - name: x-provider-name in: header type: string required: true outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: record: '{{tools.record}}' exposes: - type: rest port: 8080 namespace: supaglue-crm-integration-api description: Unified REST API for Supaglue CRM integration management and data access. resources: - path: /v1/customers name: customers description: Manage integration customers operations: - method: GET name: list-customers description: List all customers using integrations call: supaglue-mgmt.list-customers outputParameters: - type: array mapping: $. - path: /v1/customers/{customer_id}/connections name: connections description: Customer CRM connections operations: - method: GET name: list-connections description: List provider connections for a customer call: supaglue-mgmt.list-connections with: customer_id: rest.customer_id outputParameters: - type: array mapping: $. - path: /v1/magic-links name: magic-links description: OAuth authentication links operations: - method: POST name: create-magic-link description: Create OAuth magic link for customer authentication call: supaglue-mgmt.create-magic-link outputParameters: - type: object mapping: $. - path: /v1/syncs/trigger name: sync-trigger description: Sync control operations: - method: POST name: trigger-sync description: Trigger a data sync call: supaglue-mgmt.trigger-sync outputParameters: - type: object mapping: $. - path: /v1/sync-runs name: sync-runs description: Sync history operations: - method: GET name: list-sync-runs description: List sync run history call: supaglue-mgmt.list-sync-runs outputParameters: - type: array mapping: $. - path: /v1/crm/accounts name: accounts description: CRM accounts operations: - method: GET name: list-accounts description: List CRM accounts call: supaglue-crm.list-accounts outputParameters: - type: object mapping: $. - method: POST name: create-account description: Create a CRM account call: supaglue-crm.create-account outputParameters: - type: object mapping: $. - path: /v1/crm/contacts name: contacts description: CRM contacts operations: - method: GET name: list-contacts description: List CRM contacts call: supaglue-crm.list-contacts outputParameters: - type: object mapping: $. - method: POST name: create-contact description: Create a CRM contact call: supaglue-crm.create-contact outputParameters: - type: object mapping: $. - path: /v1/crm/contacts/search name: contact-search description: CRM contact search operations: - method: POST name: search-contacts description: Search CRM contacts by criteria call: supaglue-crm.search-contacts outputParameters: - type: object mapping: $. - path: /v1/crm/leads name: leads description: CRM leads operations: - method: GET name: list-leads description: List CRM leads call: supaglue-crm.list-leads outputParameters: - type: object mapping: $. - method: POST name: create-lead description: Create a CRM lead call: supaglue-crm.create-lead outputParameters: - type: object mapping: $. - path: /v1/crm/opportunities name: opportunities description: CRM opportunities operations: - method: GET name: list-opportunities description: List CRM opportunities call: supaglue-crm.list-opportunities outputParameters: - type: object mapping: $. - method: POST name: create-opportunity description: Create a CRM opportunity call: supaglue-crm.create-opportunity outputParameters: - type: object mapping: $. - type: mcp port: 9090 namespace: supaglue-crm-integration-mcp transport: http description: MCP server for AI-assisted CRM integration management and data access. tools: - name: list-customers description: List all customers using Supaglue integrations hints: readOnly: true openWorld: false call: supaglue-mgmt.list-customers outputParameters: - type: array mapping: $. - name: upsert-customer description: Create or update a customer in the Supaglue platform hints: readOnly: false destructive: false call: supaglue-mgmt.upsert-customer with: customer_id: tools.customer_id name: tools.name email: tools.email outputParameters: - type: object mapping: $. - name: list-connections description: List CRM provider connections for a customer hints: readOnly: true openWorld: false call: supaglue-mgmt.list-connections with: customer_id: tools.customer_id outputParameters: - type: array mapping: $. - name: create-magic-link description: Generate a magic link for customer OAuth authentication to a CRM provider hints: readOnly: false destructive: false call: supaglue-mgmt.create-magic-link with: customer_id: tools.customer_id provider_name: tools.provider_name outputParameters: - type: object mapping: $. - name: trigger-sync description: Trigger a CRM data sync for a customer connection hints: readOnly: false destructive: false call: supaglue-mgmt.trigger-sync with: customer_id: tools.customer_id provider_name: tools.provider_name outputParameters: - type: object mapping: $. - name: list-sync-runs description: View CRM sync run history and status hints: readOnly: true openWorld: false call: supaglue-mgmt.list-sync-runs outputParameters: - type: array mapping: $. - name: list-accounts description: List CRM accounts from the provider for a customer hints: readOnly: true openWorld: false call: supaglue-crm.list-accounts outputParameters: - type: object mapping: $. - name: create-account description: Create a new account in the customer's CRM hints: readOnly: false destructive: false call: supaglue-crm.create-account with: record: tools.record outputParameters: - type: object mapping: $. - name: list-contacts description: List contacts from the customer's CRM hints: readOnly: true openWorld: false call: supaglue-crm.list-contacts outputParameters: - type: object mapping: $. - name: create-contact description: Create a new contact in the customer's CRM hints: readOnly: false destructive: false call: supaglue-crm.create-contact with: record: tools.record outputParameters: - type: object mapping: $. - name: search-contacts description: Search for CRM contacts matching filter criteria hints: readOnly: true openWorld: false call: supaglue-crm.search-contacts with: filters: tools.filters outputParameters: - type: object mapping: $. - name: list-leads description: List leads from the customer's CRM hints: readOnly: true openWorld: false call: supaglue-crm.list-leads outputParameters: - type: object mapping: $. - name: create-lead description: Create a new lead in the customer's CRM hints: readOnly: false destructive: false call: supaglue-crm.create-lead with: record: tools.record outputParameters: - type: object mapping: $. - name: list-opportunities description: List opportunities from the customer's CRM hints: readOnly: true openWorld: false call: supaglue-crm.list-opportunities outputParameters: - type: object mapping: $. - name: create-opportunity description: Create a new opportunity in the customer's CRM hints: readOnly: false destructive: false call: supaglue-crm.create-opportunity with: record: tools.record outputParameters: - type: object mapping: $.