Connectors Overview

13 enterprise connectors with 183+ operations for integrating external services

Enterprise Connectors

Welcome! DeepChain comes packed with 13 pre-built enterprise connectors and 183+ operations so you can plug your workflows into the tools you already use. Whether you're syncing customer data from Salesforce, triggering AWS Lambda functions, or sending Slack notifications, we've got you covered.

Think of connectors as ready-to-use building blocks—just drop them into your workflow, connect your credentials, and you're ready to go.

Available Connectors

CRM & Sales

Connector Operations Description
Salesforce 9 Leads, contacts, opportunities, accounts
HubSpot 9 Contacts, companies, deals, marketing
Dynamics 365 9 Customers, leads, orders, custom entities

Productivity & Collaboration

Connector Operations Description
Slack 8 Messages, channels, files, workflows
Jira 12 Issues, projects, sprints, epics
Trello 17 Boards, cards, lists, checklists
ServiceNow 8 Incidents, changes, tickets, CMDB

E-Commerce & Finance

Connector Operations Description
Shopify 17 Orders, products, customers, inventory
DocuSign 15 Documents, signatures, templates
SAP S/4HANA 8 Purchase orders, invoices, inventory

Cloud Platforms

Connector Operations Description
AWS 17 S3, Lambda, EC2, RDS, SQS, SNS
Azure 17 VMs, Storage, Functions, SQL, Service Bus
Google Cloud 18 Compute, Storage, Functions, BigQuery

Getting Started (3 Simple Steps)

Step 1: Set Up Your Credentials

Head to Settings > Credentials and click Add Credential. Pick your connector type and add your auth details—we support three flavors:

  • OAuth 2.0: Click "Connect" and we'll handle the authorization flow securely
  • API Key: Paste in your API key (we store it safely encrypted)
  • Basic Auth: Username and password (for services that use it)

Note: Always use credential references in your workflows, never hardcode secrets. We'll cover this in the best practices section below.

Step 2: Add a Connector Node to Your Workflow

Drag a connector onto your canvas and point it to your credential. Here's a quick example:

Node Type: salesforce_create_lead
Configuration:
  credential_id: cred_salesforce_prod
  firstName: "{{ input.firstName }}"
  lastName: "{{ input.lastName }}"
  email: "{{ input.email }}"
  company: "{{ input.company }}"

Step 3: Use the Results in Your Next Node

Once the connector runs, its output is available to every node that follows:

# Access the response from your previous connector
{{ salesforce_1.response.id }}
{{ salesforce_1.response.success }}

Simple, right? Now let's talk about choosing the right connector for your use case.


Choosing the Right Connector

Not sure which connector to use? Here's a quick decision guide:

  • Need to manage CRM data? → Salesforce, HubSpot, or Dynamics 365
  • Building cloud workflows? → AWS, Azure, or Google Cloud
  • Managing projects or tickets? → Jira, Trello, or ServiceNow
  • Running an online store? → Shopify
  • Handling signatures? → DocuSign
  • Enterprise resource planning? → SAP
  • Team communication? → Slack

Once you've picked your connector, dive into its page to see all available operations and examples.


Authentication Methods

We support three main authentication patterns, so you can use whatever your service prefers:

OAuth 2.0 (Recommended for Most)

Most of our connectors use OAuth 2.0 with PKCE—it's the most secure and user-friendly approach. You'll authorize via a browser window, and we handle the token management automatically.

How to set it up:

  1. Create an OAuth app in your service provider's dashboard
  2. Grab your Client ID and Client Secret
  3. Register the redirect URI: https://yourapp.deepchain.dev/oauth/callback
  4. Click "Connect" in your DeepChain credentials, and you're done!

Connectors using OAuth 2.0: Salesforce, HubSpot, Dynamics 365, Google Cloud, Slack, DocuSign, Shopify, Trello

API Key (Simple & Direct)

Some services prefer API keys. Just grab your key, paste it in, and you're ready. Use this when OAuth isn't available.

Connectors using API Keys: AWS, ServiceNow, Jira, SAP S/4HANA

Service Account (Server-to-Server)

For integrations that run in the background without a user present. You'll typically provide a JSON file or credentials JSON blob.

Connectors using Service Accounts: Google Cloud (Service Account JSON), Azure (Service Principal), AWS (IAM Role)


Connector Operations at a Glance

Every connector supports a mix of standard operations. Here's what you'll typically see:

Operation Type What It Does Example
Create Add a new record Create a Salesforce Lead
Read Get a single record Fetch a Shopify Order
Update Modify an existing record Update a Jira Issue
Delete Remove a record Delete a HubSpot Contact
List Fetch multiple records (often paginated) List all Trello Cards
Search Find records with filters Search Salesforce Accounts
Execute Run a special action Invoke an AWS Lambda function

Common Workflow Patterns

You'll end up using a few patterns repeatedly. Here are the most useful ones:

Pattern 1: Create a record and use its new ID

# First, create the lead
salesforce_create_lead:
  firstName: "{{ input.firstName }}"
  lastName: "{{ input.lastName }}"

# Then use the ID it returns
next_node:
  leadId: "{{ salesforce_1.response.id }}"

Pattern 2: List records and process each one

# Fetch all unfulfilled orders
shopify_list_orders:
  status: "unfulfilled"

# Loop through the results
loop:
  mode: array
  items: "{{ shopify_1.response.orders }}"

# Do something with each order
process_order:
  orderId: "{{ loop_1.current.id }}"

Pattern 3: Update multiple records at once

# Update a batch of contacts
hubspot_batch_update:
  contacts:
    - id: "123"
      properties: { status: "active" }
    - id: "456"
      properties: { status: "active" }

Handling Errors Like a Pro

Things don't always go perfectly, and that's okay. Here's how we handle the rough spots:

Automatic Retries

You can configure retries at the node level. If a connector call fails, we'll retry it automatically with exponential backoff:

Node Configuration:
  retry:
    enabled: true
    maxAttempts: 3
    backoff: exponential
    initialDelay: 1000  # milliseconds

Accessing Error Information

Every connector provides a success path AND an error path. Use the error output to catch problems:

# On success, you get the response
{{ connector_1.response }}

# On error, you get error details
{{ connector_1.error.code }}        # e.g., "UNAUTHORIZED"
{{ connector_1.error.message }}     # Human-readable message
{{ connector_1.error.statusCode }}  # HTTP status if applicable

Rate Limiting (We Handle It)

No need to worry about hitting rate limits. We automatically:

  • Retry requests with intelligent backoff
  • Queue up requests when you're near the limit
  • Respect each service's rate limits

Tip: Check the individual connector page for service-specific rate limit details.

Common Rate Limit Errors & Fixes:

Error Meaning What to Do
429 Too Many Requests You're calling the API too fast Increase delays between calls or batch operations
400 Bad Request Invalid data sent Check your input data and field names
401 Unauthorized Bad credentials Re-authenticate in Credentials settings
403 Forbidden You don't have permission Check your account's access level
404 Not Found Record doesn't exist Verify the record ID is correct

Building Custom Connectors

Don't see the service you need? No problem! You can build your own connector using our SDK. We support generating from OpenAPI specs or hand-rolling custom implementations.

Generate from an OpenAPI spec:

deepchain generate-connector \
  --spec your_api.yaml \
  --output lib/connectors/your_service/

For full custom implementations, check out the SDK Documentation.


Best Practices for Rock-Solid Connectors

1. Always Use Credential References (Never Hardcode Secrets!)

This is the golden rule. Always reference credentials by ID, never paste them directly in your workflow:

# Perfect
credential_id: cred_salesforce_prod

# Dangerous—don't do this!
api_key: "sk-12345..."

We encrypt credentials and rotate them automatically, but only if you let us manage them!

2. Handle Pagination for Large Datasets

When fetching lots of records, use the pagination helper. It prevents memory issues and handles rate limits gracefully:

Node: api_pagination_rate_limit
Configuration:
  connector: shopify
  operation: list_products
  pageSize: 100

# Outputs each page via 'page' port
# Outputs all when done via 'done' port

3. Monitor Your Usage

Keep an eye on your API call metrics in the Analytics dashboard. Look for:

  • Calls per connector (spotting unusual spikes)
  • Error rates (catching auth issues early)
  • Response times (diagnosing slowdowns)
  • Rate limit hits (adjusting your workflow pace)

4. Use Sandbox Credentials While Developing

Test with test/sandbox credentials before going live. Switch by just changing the credential reference:

# Development (test environment)
credential_id: cred_salesforce_sandbox

# Production (real data)
credential_id: cred_salesforce_prod

Debugging & Troubleshooting

When things go wrong, turn on debug mode to see exactly what's being sent and received:

Node Configuration:
  debug: true
  logRequest: true
  logResponse: true

Then check your execution logs for the full request/response details. This usually reveals the issue immediately.

Quick Troubleshooting Table

Problem Most Likely Cause Fix
Invalid token or invalid_auth Credentials expired or revoked Click "Re-authenticate" in Credentials
Insufficient scope OAuth app doesn't have the right permissions Update your OAuth app scopes and reconnect
400 Bad Request Data format doesn't match what the service expects Check required fields and data types
401 Unauthorized Bad credentials Verify your API key or re-authenticate
403 Forbidden Your account doesn't have permission for that operation Check your account's access level or role
404 Not Found Record doesn't exist or you used the wrong ID Double-check the record ID
429 Too Many Requests You're hitting rate limits Slow down, add delays, or batch operations
500 Server Error Service is having issues Retry in a few seconds; if it persists, check the service status page

Next Steps

Ready to dive deeper? Here are some great next stops: