Internal use only!
An app integration is an integration or connection between a third-party app and ProteusAI. Specifically, an app integration connects a third-party app to one or more agents on ProteusAI. With an app integration, a user would send a message (or perform an action) on a third-party app (like WhatsApp, Telegram, Slack, Twitter, etc.) and a ProteusAI agent would generate a response (or a reaction) and send it back to the third-party app. This way, the entire user experience happens on the third-party app, with the role of ProteusAI being inconspicuous during that experience.
A typical time to use an app integration is when you are unable or unwilling to modify the codebase of the app. Such an app would typically expose a way for you to be notified when messages are sent on the app. You can then forward the message to an agent on ProteusAI, get a response from the agent, and forward the response to the app.
Here's a typical way to integrate a third-party app with ProteusAI.
- Register a webhook, say
https://myserver.com/third-party-app
, which will receive events viaHTTP POST
requests whenever a user sends a message on the third-party app. - Register a public
APP
plugin on ProteusAI to represent the third-party app. Every time this plugin is used to create an app integration, you will receive a token with which you can send messages to agents on ProteusAI in the name of the app. - The
webhookUrl
of the plugin will be an endpoint on your server, sayhttps://myserver.com/proteus
, to which ProteusAI will send responses (viaHTTP POST
requests) from agents. - You will then forward the agent responses to the third-party app, typically using the app's SDK or API.
Create App Integration
POST /api/app-integrations
curl https://management-api.useproteus.ai/api/app-integrations \
-X POST \
-H "Authorization: Bearer user-3a4d80a9c3cca7ffd1bc341f.ede04d00e4b168bed35d9fcde8c2f92f.00d7fecf89201691f94b01e5b294da65.e7ea4c191b2c9a059ce5658deb7349c26a931ed8b7a04bf0" \
-d '{
"name": "Slack<>ProteusAI Integration",
"description": "This app integration allows Slack users to communicate with ProteusAI agents",
"orgId": "6816330b6f46b5afc080fbf7"
}'
You can also create app integrations via the orgs API POST: /api/orgs/:orgId/app-integrations
. You will not be able to supply an orgId
field in the request body.
curl https://management-api.useproteus.ai/api/orgs/6816330b6f46b5afc080fbf7/app-integrations \
-X POST \
-H "Authorization: Bearer user-3a4d80a9c3cca7ffd1bc341f.ede04d00e4b168bed35d9fcde8c2f92f.00d7fecf89201691f94b01e5b294da65.e7ea4c191b2c9a059ce5658deb7349c26a931ed8b7a04bf0" \
-d '{
"name": "WhatsApp<>ProteusAI Integration",
"description": "This app integration allows WhatsApp users to communicate with ProteusAI agents"
}'
Get App Integration
GET /api/app-integrations/:appIntegrationId
This endpoint returns an app integration.
curl https://management-api.useproteus.ai/api/app-integrations/6825a9f67306f72d65708b74 \
-H "Authorization: Bearer user-3a4d80a9c3cca7ffd1bc341f.ede04d00e4b168bed35d9fcde8c2f92f.00d7fecf89201691f94b01e5b294da65.e7ea4c191b2c9a059ce5658deb7349c26a931ed8b7a04bf0"
You have to be a member of an organization to view an app integration in that organization.
List Org App Integrations
GET /api/orgs/:orgId/app-integrations
This endpoint fetches the app integrations in an organization.
curl https://management-api.useproteus.ai/api/orgs/6816330b6f46b5afc080fbf7/app-integrations \
-H "Authorization: Bearer user-3a4d80a9c3cca7ffd1bc341f.ede04d00e4b168bed35d9fcde8c2f92f.00d7fecf89201691f94b01e5b294da65.e7ea4c191b2c9a059ce5658deb7349c26a931ed8b7a04bf0"
If the current user is not a member of this organization, an error response is returned.
curl https://management-api.useproteus.ai/api/orgs/6816330b6f46b5afc080fbf7/app-integrations \
-H "Authorization: Bearer user-73dd22b0c07a542d080d48a2.9e0ac60c1472a5f2949f8978e82d2582.dfbaf5a25782b0608e173d295e977259.2a52f18cf2ce3d84872ae7fc73c60822ad6fe0ad7dc21f58"
Add App to App Integration
POST /api/app-integrations/:appIntegrationId/apps
An app integration is a connection between a third-party app and an agent. This endpoint adds a plugin instance representing the third-party app. The response of the API is the plugin instance.
Assuming we already have the below plugin representing the Slack app:
{
"id": "6825f0a6d6191933ffd08112",
"createdAt": "2025-05-15T13:48:22.967Z",
"description": "This plugin helps an app integration connect with the Slack app",
"events": [
"APP_INTEGRATION_MESSAGE_RECEIVED"
],
"image": null,
"inputsSchema": {
"type": "object",
"properties": {
"token": {
"description": "Slack token",
"type": "string"
}
},
"required": [
"token"
]
},
"isPublic": false,
"isTemplate": false,
"name": "Slack App",
"offboardingUrl": null,
"onboardingUrl": null,
"orgId": "6816330b6f46b5afc080fbf7",
"privacyPolicyUrl": null,
"scopes": [
"APP_INTEGRATION_MESSAGE_WRITE"
],
"supportEmail": null,
"supportUrl": null,
"tags": [
"Slack"
],
"termsOfServiceUrl": null,
"type": "APP",
"updatedAt": "2025-05-15T13:48:22.967Z",
"webhookUrl": "https://myplugins.com/app-integration-apps/slack/webhook",
"webhookUrlIsVerified": true,
"websiteUrl": null
}
We can add this plugin to an app integration as shown below.
curl https://management-api.useproteus.ai/api/app-integrations/6825a9f67306f72d65708b74/apps \
-X POST \
-H "Authorization: Bearer user-3a4d80a9c3cca7ffd1bc341f.ede04d00e4b168bed35d9fcde8c2f92f.00d7fecf89201691f94b01e5b294da65.e7ea4c191b2c9a059ce5658deb7349c26a931ed8b7a04bf0" \
-d '{
"pluginId": "6825f0a6d6191933ffd08112",
"events": [ "APP_INTEGRATION_MESSAGE_RECEIVED" ],
"scopes": [ "APP_INTEGRATION_MESSAGE_WRITE" ],
"inputs": {
"token": "xoxb-slack-token"
}
}'
This API call dispatches the PLUGIN_INSTALLED
event to the webhook of the plugin as a HTTP POST
request.
At this time, only one plugin can be added to an app integration; trying to add another plugin will uninstall the previous plugin
(dispatching a PLUGIN_UNINSTALLED
event) and install the new one
(dispatching a PLUGIN_INSTALLED
event).
Trying to add the same plugin twice is a no-op.
List Apps in App Integration
GET /api/app-integrations/:appIntegrationId/apps
This endpoint lists the plugin instances acting as apps for an app integration. At the moment this list contains a maximum of an entry as you cannot add more than one plugin to an app integration.
You have to be a member of an organization to view an app integration in that organization.
curl https://management-api.useproteus.ai/api/app-integrations/6825a9f67306f72d65708b74/apps \
-H "Authorization: Bearer user-3a4d80a9c3cca7ffd1bc341f.ede04d00e4b168bed35d9fcde8c2f92f.00d7fecf89201691f94b01e5b294da65.e7ea4c191b2c9a059ce5658deb7349c26a931ed8b7a04bf0"
Remove App from App Integration
DELETE /api/app-integrations/:appIntegrationId/apps/:pluginInstanceId
This endpoint removes a plugin instance representing the third-party app from an app integration.
The current user must be a member of the org with a role of OWNER
.
curl https://management-api.useproteus.ai/api/app-integrations/6825a9f67306f72d65708b74/apps/6825fc77c10e22e54b35beb2 \
-X DELETE \
-H "Authorization: Bearer user-3a4d80a9c3cca7ffd1bc341f.ede04d00e4b168bed35d9fcde8c2f92f.00d7fecf89201691f94b01e5b294da65.e7ea4c191b2c9a059ce5658deb7349c26a931ed8b7a04bf0"
This API call dispatches the PLUGIN_UNINSTALLED
event to the webhook of the plugin as a HTTP POST
request.
Add Agent to App Integration
POST /api/app-integrations/:appIntegrationId/agents
An app integration is a connection between a third-party app and an agent. This endpoint adds an agent to an app integration. The response of the API is the agent added.
curl https://management-api.useproteus.ai/api/app-integrations/6825a9f67306f72d65708b74/agents \
-X POST \
-H "Authorization: Bearer user-3a4d80a9c3cca7ffd1bc341f.ede04d00e4b168bed35d9fcde8c2f92f.00d7fecf89201691f94b01e5b294da65.e7ea4c191b2c9a059ce5658deb7349c26a931ed8b7a04bf0" \
-d '{
"agentId": "6819a0e484df0fc342cea506"
}'
Multiple agents can be added to an app integration, provided you are not trying to add an agent twice; calling this API again will add a new agent to the app integration. Trying to add the same agent twice is a no-op.
List Agents in App Integration
GET /api/app-integrations/:appIntegrationId/agents
This endpoint lists the agents in an app integration.
You have to be a member of an organization to view an app integration in that organization.
curl https://management-api.useproteus.ai/api/app-integrations/6825a9f67306f72d65708b74/agents \
-H "Authorization: Bearer user-3a4d80a9c3cca7ffd1bc341f.ede04d00e4b168bed35d9fcde8c2f92f.00d7fecf89201691f94b01e5b294da65.e7ea4c191b2c9a059ce5658deb7349c26a931ed8b7a04bf0"
Remove Agent from App Integration
DELETE /api/app-integrations/:appIntegrationId/agents/:agentId
This endpoint removes an agent from an app integration.
The current user must be a member of the org with a role of OWNER
.
curl https://management-api.useproteus.ai/api/app-integrations/6825a9f67306f72d65708b74/agents/681998f5474dbe26fe2e7f5f \
-X DELETE \
-H "Authorization: Bearer user-3a4d80a9c3cca7ffd1bc341f.ede04d00e4b168bed35d9fcde8c2f92f.00d7fecf89201691f94b01e5b294da65.e7ea4c191b2c9a059ce5658deb7349c26a931ed8b7a04bf0"