Integrations
Connect your AI applications with external services and systems.
Overview
Integrations provide a way to connect your AI applications with external services and systems. Integrations can:
- Connect to external APIs and services
- Import and export data
- Trigger workflows based on external events
- Extend the functionality of your AI applications
Key Features
- API Connections: Connect to external APIs and services
- Data Import/Export: Import and export data from external systems
- Event Triggers: Trigger workflows based on external events
- Authentication: Securely authenticate with external services
Available Integrations
Admin.do provides integrations with popular services and platforms:
AI Services
- OpenAI: Access OpenAI’s models and APIs
- Anthropic: Access Anthropic’s models and APIs
- Google AI: Access Google’s AI models and APIs
- Hugging Face: Access Hugging Face’s models and APIs
- Cohere: Access Cohere’s models and APIs
Cloud Providers
- AWS: Connect to AWS services
- Google Cloud: Connect to Google Cloud services
- Azure: Connect to Azure services
Databases
- MongoDB: Connect to MongoDB databases
- PostgreSQL: Connect to PostgreSQL databases
- MySQL: Connect to MySQL databases
- Redis: Connect to Redis databases
- Elasticsearch: Connect to Elasticsearch clusters
Communication
- Slack: Connect to Slack workspaces
- Discord: Connect to Discord servers
- Microsoft Teams: Connect to Microsoft Teams
- Twilio: Connect to Twilio for SMS and voice
Productivity
- GitHub: Connect to GitHub repositories
- GitLab: Connect to GitLab repositories
- Jira: Connect to Jira projects
- Asana: Connect to Asana projects
- Trello: Connect to Trello boards
- Notion: Connect to Notion workspaces
Marketing
- HubSpot: Connect to HubSpot
- Salesforce: Connect to Salesforce
- Mailchimp: Connect to Mailchimp
- Intercom: Connect to Intercom
Analytics
- Google Analytics: Connect to Google Analytics
- Mixpanel: Connect to Mixpanel
- Amplitude: Connect to Amplitude
- Segment: Connect to Segment
Setting Up Integrations
Set up integrations using the Admin.do API:
// List available integrations
const integrations = await admin.integrations.list({
category: 'ai',
limit: 10,
offset: 0,
})
// Get integration details
const integration = await admin.integrations.get('openai')
// Create an integration instance
const instance = await admin.integrations.create({
integration: 'openai',
name: 'My OpenAI Integration',
organization: 'org-123',
config: {
apiKey: 'sk-...',
organization: 'org-...',
defaultModel: 'gpt-4',
},
})
// Get all integration instances
const instances = await admin.integrations.listInstances({
organization: 'org-123',
integration: 'openai',
limit: 10,
offset: 0,
})
// Get integration instance details
const instance = await admin.integrations.getInstance('inst-123')
// Update an integration instance
const updatedInstance = await admin.integrations.updateInstance('inst-123', {
name: 'My Updated OpenAI Integration',
config: {
defaultModel: 'gpt-4-turbo',
},
})
// Delete an integration instance
await admin.integrations.deleteInstance('inst-123')
// Test an integration instance
const testResult = await admin.integrations.testInstance('inst-123')
Using Integrations
Use integrations in your AI applications:
// Use an integration in a function
const function = await functions.create({
name: 'getOpenAICompletion',
description: 'Get a completion from OpenAI',
integration: 'inst-123',
input: {
prompt: {
type: 'string',
description: 'The prompt to send to OpenAI'
},
model: {
type: 'string',
description: 'The model to use',
default: 'gpt-4'
},
maxTokens: {
type: 'number',
description: 'The maximum number of tokens to generate',
default: 100
}
},
output: {
completion: {
type: 'string',
description: 'The generated completion'
}
},
code: `
const { prompt, model, maxTokens } = input;
const { openai } = integration;
const response = await openai.completions.create({
model,
prompt,
max_tokens: maxTokens
});
return {
completion: response.choices[0].text
};
`
})
// Use an integration in a workflow
const workflow = await workflows.create({
name: 'slackNotification',
description: 'Send a notification to Slack',
integration: 'inst-456',
input: {
message: {
type: 'string',
description: 'The message to send to Slack'
},
channel: {
type: 'string',
description: 'The Slack channel to send the message to',
default: '#general'
}
},
output: {
success: {
type: 'boolean',
description: 'Whether the message was sent successfully'
},
messageId: {
type: 'string',
description: 'The ID of the sent message'
}
},
steps: [
{
id: 'sendMessage',
name: 'Send Message to Slack',
action: 'slack.sendMessage',
input: {
message: '{{input.message}}',
channel: '{{input.channel}}'
}
}
],
output: {
success: '{{steps.sendMessage.success}}',
messageId: '{{steps.sendMessage.messageId}}'
}
})
Integration Permissions
Manage integration permissions using the Admin.do API:
// Get integration permissions
const permissions = await admin.integrations.getPermissions('inst-123')
// Update integration permissions
const updatedPermissions = await admin.integrations.updatePermissions('inst-123', {
projects: ['proj-123', 'proj-456'],
users: ['user-123', 'user-456'],
teams: ['team-123', 'team-456'],
})
// Grant access to a project
await admin.integrations.grantAccess('inst-123', {
project: 'proj-789',
})
// Revoke access from a project
await admin.integrations.revokeAccess('inst-123', {
project: 'proj-789',
})
Integration Logs
View integration logs using the Admin.do API:
// Get integration logs
const logs = await admin.integrations.getLogs('inst-123', {
timeRange: {
start: '2023-06-01T00:00:00Z',
end: '2023-06-30T23:59:59Z',
},
level: 'error',
limit: 10,
offset: 0,
})
// Get a specific log entry
const log = await admin.integrations.getLog('inst-123', 'log-123')
Custom Integrations
Create custom integrations using the Admin.do API:
// Create a custom integration
const customIntegration = await admin.integrations.createCustom({
name: 'My Custom Integration',
description: 'A custom integration for my API',
organization: 'org-123',
baseUrl: 'https://api.example.com',
authentication: {
type: 'apiKey',
header: 'X-API-Key',
},
endpoints: [
{
name: 'getUser',
method: 'GET',
path: '/users/{userId}',
parameters: [
{
name: 'userId',
type: 'string',
required: true,
description: 'The ID of the user to get',
},
],
response: {
type: 'object',
properties: {
id: {
type: 'string',
},
name: {
type: 'string',
},
email: {
type: 'string',
},
},
},
},
{
name: 'createUser',
method: 'POST',
path: '/users',
body: {
type: 'object',
properties: {
name: {
type: 'string',
required: true,
},
email: {
type: 'string',
required: true,
},
},
},
response: {
type: 'object',
properties: {
id: {
type: 'string',
},
name: {
type: 'string',
},
email: {
type: 'string',
},
},
},
},
],
})
// Get all custom integrations
const customIntegrations = await admin.integrations.listCustom({
organization: 'org-123',
limit: 10,
offset: 0,
})
// Get a specific custom integration
const customIntegration = await admin.integrations.getCustom('cint-123')
// Update a custom integration
const updatedCustomIntegration = await admin.integrations.updateCustom('cint-123', {
name: 'My Updated Custom Integration',
description: 'An updated custom integration for my API',
})
// Delete a custom integration
await admin.integrations.deleteCustom('cint-123')
Next Steps
Last updated on