Skip to main content

Integrations Overview

Integrations connect your agents to the tools and services your organization already uses. From Google Workspace to Salesforce, Deeployd provides pre-built connectors that work out of the box.

How Integrations Work

Agent ──▶ Integration ──OAuth──▶ External Service

MCP Protocol
  1. User authorizes connection via OAuth
  2. Deeployd securely stores tokens
  3. Agent uses MCP tools to interact with service
  4. Integration handles authentication and API calls

Integration Catalog

Browse available integrations by category:

Productivity

IntegrationToolsStatus
Google WorkspaceGmail, Drive, Calendar, Docs, SheetsAvailable
Microsoft 365Outlook, OneDrive, Teams, Excel, WordAvailable
NotionPages, databases, searchAvailable
SlackMessages, channels, threadsAvailable

Admin & IT

IntegrationToolsStatus
Google AdminUser provisioning, groups, licensesAvailable
Microsoft AdminUser management, groups, licensesAvailable
OktaUser management, SSOAvailable
JiraIssues, projects, workflowsAvailable
ServiceNowIncidents, requests, CMDBAvailable

CRM & Sales

IntegrationToolsStatus
SalesforceContacts, opportunities, casesAvailable
HubSpotContacts, deals, ticketsAvailable
PipedriveDeals, contacts, activitiesAvailable

Development

IntegrationToolsStatus
GitHubRepos, issues, PRs, actionsAvailable
GitLabProjects, merge requestsAvailable
LinearIssues, projects, cyclesAvailable

Data & Analytics

IntegrationToolsStatus
SnowflakeQuery, tablesAvailable
BigQueryQuery, datasetsAvailable
PostgreSQLQuery, tablesAvailable
MongoDBDocuments, collectionsAvailable

Communication

IntegrationToolsStatus
SlackMessages, channelsAvailable
Microsoft TeamsMessages, channelsAvailable
DiscordMessages, channelsAvailable
TwilioSMS, voiceAvailable

Storage

IntegrationToolsStatus
Google DriveFiles, folders, sharingAvailable
OneDriveFiles, folders, sharingAvailable
DropboxFiles, folders, sharingAvailable
BoxFiles, folders, sharingAvailable

Payments

IntegrationToolsStatus
StripeCustomers, payments, subscriptionsAvailable
PayPalPayments, transactionsAvailable

Connecting an Integration

Via Dashboard

  1. Go to Integrations in the sidebar
  2. Browse or search for the integration
  3. Click Connect
  4. Complete OAuth authorization
  5. Configure settings (optional)
  6. Assign to agents

Via API

// List available integrations
const catalog = await client.integrations.getCatalog({
category: 'productivity',
status: 'available'
});

// Initiate OAuth connection
const connection = await client.integrations.connect({
integrationId: 'google-workspace',
redirectUrl: 'https://your-app.com/oauth/callback',
scopes: ['gmail.modify', 'drive', 'calendar']
});

// Redirect user to OAuth URL
window.location.href = connection.authUrl;

OAuth Callback

// Handle OAuth callback
app.get('/oauth/callback', async (req, res) => {
const { code, state } = req.query;

const connection = await client.integrations.completeConnection({
code,
state
});

console.log('Connected:', connection.integrationName);
res.redirect('/integrations');
});

Managing Connections

List Connections

const connections = await client.integrations.listConnections();

for (const conn of connections.data) {
console.log({
integration: conn.integrationName,
status: conn.status,
connectedAt: conn.createdAt,
expiresAt: conn.expiresAt
});
}

Test Connection

const result = await client.integrations.testConnection('connection-123');

if (result.success) {
console.log('Connection is healthy');
} else {
console.log('Connection issue:', result.error);
}

Refresh Token

await client.integrations.refreshConnection('connection-123');

Revoke Connection

await client.integrations.revokeConnection('connection-123');

Assigning to Agents

Via Dashboard

  1. Go to Agents → Select agent → Integrations
  2. Toggle integrations on/off
  3. Select specific tools to enable
  4. Save changes

Via API

await client.agents.update('agent-123', {
integrations: [
{
connectionId: 'connection-456',
tools: ['gmail_search', 'gmail_send', 'calendar_create']
}
]
});

Integration Tools

Each integration provides specific tools:

Tool Discovery

// List tools for an integration
const tools = await client.integrations.listTools('google-workspace');

for (const tool of tools) {
console.log({
name: tool.name,
description: tool.description,
inputSchema: tool.inputSchema
});
}

Tool Categories

CategoryDescription
ReadFetch data (search, list, get)
WriteCreate/update data
DeleteRemove data
AdminUser management, permissions

Security Considerations

OAuth Scopes

Request only the scopes you need:

// ✅ Good - minimal scopes
scopes: ['gmail.readonly', 'calendar.readonly']

// ❌ Bad - overly broad
scopes: ['https://www.googleapis.com/auth/gmail']

Token Storage

  • Tokens are encrypted at rest (AES-256)
  • Access tokens auto-refresh before expiry
  • Refresh tokens are never exposed to agents

Audit Logging

All integration actions are logged:

const logs = await client.audit.list({
resourceType: 'integration',
action: 'integration.tool_executed'
});

Rate Limits

Deeployd respects external service rate limits:

ServiceLimitHandling
Google APIsVaries by APIAutomatic retry with backoff
Microsoft Graph10,000/10minQueued requests
Slack50/minRate limit headers

Troubleshooting

Connection Expired

// Check connection status
const conn = await client.integrations.getConnection('connection-123');

if (conn.status === 'expired') {
// Refresh or re-authenticate
await client.integrations.refreshConnection('connection-123');
}

Permission Denied

  1. Check OAuth scopes granted
  2. Verify user has permission in external service
  3. Re-authorize with additional scopes if needed

Tool Execution Failed

try {
await client.mcp.callTool({ name: 'gmail_send', arguments: {...} });
} catch (error) {
if (error.code === 'INTEGRATION_ERROR') {
console.log('External service error:', error.details);
}
}

Custom Integrations

Build your own integrations:

// Create custom tool
await client.tools.create({
name: 'custom_crm_lookup',
description: 'Look up customer in custom CRM',
executionType: 'http',
executionConfig: {
url: 'https://api.custom-crm.com/customers/${customerId}',
method: 'GET',
headers: {
'Authorization': 'Bearer ${secrets.CRM_TOKEN}'
}
},
secretsRequired: ['CRM_TOKEN']
});

See Custom Tools for details.


Next: Explore Google Workspace integration.