Skip to content

Managing Integrations

Create, update, and manage integrations for AI agents.

import { BeepsClient } from "@beepsdev/sdk";
const client = new BeepsClient({
apiKey: process.env.BEEPS_API_KEY,
});
const integration = await client.integration.create({
name: "Devin Production",
provider: "devin",
apiKey: process.env.DEVIN_API_KEY,
metadata: {
environment: "production",
endpoint: "https://api.devin.ai/v3/organizations/sessions",
},
});
console.log(`Created integration: ${integration.id}`);
const devin = await client.integration.create({
name: "Devin Agent",
provider: "devin",
apiKey: "devin_api_key_here",
metadata: {
workspace: "production",
defaultPriority: "high",
},
});
const cursor = await client.integration.create({
name: "Cursor Agent",
provider: "cursor",
apiKey: "cursor_api_key_here",
});
const result = await client.integration.createSafe({
name: "Devin Production",
provider: "devin",
apiKey: process.env.DEVIN_API_KEY,
});
if (result.error) {
console.error("Failed to create integration:", result.error.message);
} else {
console.log(`Created: ${result.data.id}`);
}
const integrations = await client.integration.list();
console.log(`Found ${integrations.length} integrations:`);
integrations.forEach((integration) => {
console.log(`- ${integration.name} (${integration.provider})`);
});
const integrations = await client.integration.list();
const devinIntegrations = integrations.filter(
(i) => i.provider === "devin"
);
const cursorIntegrations = integrations.filter(
(i) => i.provider === "cursor"
);
console.log(`Devin: ${devinIntegrations.length}`);
console.log(`Cursor: ${cursorIntegrations.length}`);
const integration = await client.integration.get("int_abc123");
console.log(`Name: ${integration.name}`);
console.log(`Provider: ${integration.provider}`);
console.log(`Metadata:`, integration.metadata);
const updated = await client.integration.update("int_abc123", {
name: "Devin Production (Updated)",
apiKey: process.env.NEW_DEVIN_API_KEY,
metadata: {
environment: "production",
version: "v2",
},
});
console.log("Integration updated");
const updated = await client.integration.update("int_abc123", {
name: "New Integration Name",
});
const updated = await client.integration.update("int_abc123", {
apiKey: process.env.NEW_API_KEY,
});
console.log("API key rotated");
const updated = await client.integration.update("int_abc123", {
metadata: {
endpoint: "https://new-endpoint.example.com",
timeout: 60000,
},
});
await client.integration.delete("int_abc123");
console.log("Integration deleted successfully");
const result = await client.integration.deleteSafe("int_abc123");
if (result.error) {
console.error("Failed to delete:", result.error.message);
} else {
console.log("Deleted:", result.data.success);
}
type IntegrationProvider = "devin" | "cursor";
type CreateIntegrationInput = {
name: string; // Integration name
provider: IntegrationProvider; // Service provider
apiKey: string; // API key (stored securely)
metadata?: Record<string, unknown>; // Provider-specific config
};
type UpdateIntegrationInput = {
name?: string; // Update name
apiKey?: string; // Rotate API key
metadata?: Record<string, unknown>; // Update metadata
};
type Integration = {
id: string;
organizationId: string;
name: string;
provider: IntegrationProvider;
apiKey: string; // Always returns "***" for security
metadata: Record<string, unknown> | null;
createdBy: string; // User who created it
createdAt: string;
updatedAt: string;
deletedAt: string | null;
};
const integration = await client.integration.create({
name: "Devin Auto-Triage",
provider: "devin",
apiKey: process.env.DEVIN_API_KEY,
});
const relay = await client.relay.create({
name: "Production Alerts",
});
await client.relay.rules.create(relay.id, {
name: "AI triage first",
ruleType: "agent",
order: 1,
config: {
agentType: "devin",
integrationId: integration.id,
pollInterval: 30000,
},
});
await client.relay.rules.create(relay.id, {
name: "Escalate to humans",
ruleType: "schedule_notify",
order: 2,
config: {
scheduleId: "sch_oncall",
},
});
const integrations = await client.integration.list();
for (const integration of integrations) {
if (integration.provider === "devin") {
await client.integration.update(integration.id, {
apiKey: process.env.NEW_DEVIN_KEY,
});
console.log(`Rotated key for ${integration.name}`);
}
}
const environments = ["development", "staging", "production"];
for (const env of environments) {
await client.integration.create({
name: `Devin - ${env}`,
provider: "devin",
apiKey: process.env[`DEVIN_${env.toUpperCase()}_KEY`],
metadata: {
environment: env,
},
});
}

AI agent not responding? See Troubleshooting - AI Agent Never Responds.