Skip to main content

Integrations

Overview

The Integrations API provides endpoints to manage integrations for organizations, including Slack integrations, integration creation, retrieval, updates, and deletions. This is organized* into Integrations, Integration Settings, Channel Integrations and Custom Integrations.

Slack OAuth Code to Access Token Exchange

  • Endpoint: /slack/organisations/{organisationId}/token-exchg
  • Method: POST
  • Tags: Integrations
  • Summary: Exchange Slack OAuth code for an access token
  • Security:
    • bearerAuth: []

Parameters

  • organisationId (path): The ID of the organization.

Request Body

{
"oauth_code": "your_oauth_code_here"
}

Responses

  • 200: Slack OAuth token exchange successful.
{
"status": "success",
"status_code": 200,
"message": "Slack OAuth token exchange successful",
"data": {
"access_token": "your_access_token",
"incoming_webhook": {
"channel": "your_channel",
"channel_id": "your_channel_id",
"configuration_url": "your_configuration_url",
"url": "your_webhook_url"
}
}
}
  • 401: Invalid request body.
  • 409: Integration app already exists.
  • 500: Internal server error.

Get Slack Access Information

  • Endpoint: /slack/organisations/{organisationId}
  • Method: GET
  • Tags: Integrations
  • Summary: Get Slack access information
  • Security:
    • bearerAuth: []

Parameters

  • organisationId (path): The ID of the organization.

Responses

  • 200: Slack access info fetched successfully.
{
"status": "success",
"status_code": 200,
"message": "Slack access info fetched successfully",
"data": {
"id": "your_id",
"user_id": "your_user_id",
"organisation_id": "your_organisation_id",
"access_token": "your_access_token",
"team_id": "your_team_id",
"team_name": "your_team_name",
"channel": "your_channel",
"channel_id": "your_channel_id",
"configuration_url": "your_configuration_url",
"url": "your_url",
"created_at": "your_created_at",
"updated_at": "your_updated_at"
}
}
  • 401: Invalid request body.
  • 409: Integration app already exists.
  • 500: Internal server error.

Create a New Integration for the Organization

  • Endpoint: /organisations/{organisationId}/integrations
  • Method: POST
  • Tags: Integrations
  • Summary: Create a new integration for the organization

Parameters

  • organisationId (path): The ID of the organization.

Request Body

{
"name": "teleximsss",
"json_url": "https://www.telex.im",
"auth_credential": "some-auth-credential",
"integration_type": "filter"
}

Responses

  • 201: Integration app created successfully.
{
"status": "success",
"status_code": 201,
"message": "Integration app created successfully",
"data": {
"id": "your_integration_id",
"name": "teleximsss",
"json_url": "https://www.telex.im",
"json_schema": {
"properties": {
"event": {
"type": "string",
"description": "The name of the event"
},
"timestamp": {
"type": "string",
"description": "The time when the event was triggered"
}
},
"type": "object"
},
"auth_credential": "some-auth-credential",
"integration_type": "filter",
"is_system_integration": false,
"created_at": "your_created_at"
}
}
  • 400: Invalid request.
  • 404: Organization not found.

Get Integrations for an Organization

  • Endpoint: /organisations/{organisationId}/integrations
  • Method: GET
  • Tags: Integrations
  • Summary: Get integrations for an organization

Parameters

  • organisationId (path): The UUID of the organization.

Responses

  • 200: Successfully retrieved the list of integrations.
{
"status": "success",
"status_code": 200,
"message": "Integrations retrieved successfully.",
"data": [
{
"id": "your_integration_id",
"app_name": "Slack",
"json_url": "https://system-integration.telex.im/slack.json",
"app_url": "https://slack.com",
"app_logo": "https://media.tifi.tv/telexbucket/public/logos/slack.png",
"app_description": "Slack is a cloud-based team business and communication platform.",
"is_system_integration": true,
"is_active": false,
"created_at": "your_created_at",
"updated_at": "your_updated_at"
}
// More integration objects...
]
}
  • 400: Invalid organisation_id or request.
  • 404: Organisation not found.

Update an Organization's Integration

  • Endpoint: /organisations/{organisationId}/integrations/{integrationId}
  • Method: PATCH
  • Tags: Integrations
  • Summary: Update an organization's integration

Parameters

  • organisationId (path): The UUID of the organization.
  • integrationId (path): The UUID of the integration.

Request Body

{
"json_url": "some-very-weird-logo-url"
}

Responses

  • 200: Integration updated successfully.
{
"status": "success",
"status_code": 200,
"message": "Integrations updated successfully",
"data": {
"id": "your_integration_id",
"name": "instagram",
"json_url": "some-very-weird-logo-url",
"auth_credential": "some-auth-credential",
"integration_type": "",
"is_system_integration": false,
"created_at": "your_created_at"
}
}
  • 400: Invalid input.
  • 404: Integration not found.

Delete an Organization's Integration

  • Endpoint: /organisations/{organisationId}/integrations/{integrationId}
  • Method: DELETE
  • Tags: Integrations
  • Summary: Delete an organization's integration

Parameters

  • organisationId (path): The UUID of the organization.
  • integrationId (path): The UUID of the integration.

Responses

  • 200: Integration deleted successfully.
{
"status": "success",
"status_code": 200,
"message": "Integrations deleted successfully",
"data": {
"id": "your_integration_id",
"name": "instagram",
"json_url": "some-very-weird-logo-url",
"auth_credential": "some-auth-credential",
"integration_type": "",
"is_system_integration": false,
"created_at": "your_created_at"
}
}
  • 400: Invalid input.
  • 404: Integration not found.

Integration Settings API Documentation

Overview

The Integration Settings API provides endpoints to manage settings for integrations within organizations.

Add a New Integration Setting

  • Endpoint: /organisations/{organisation_id}/integrations/{integration_id}/settings
  • Method: POST
  • Tags: IntegrationSettings
  • Summary: Add a new integration setting

Parameters

  • organisation_id (path): The UUID of the organization.
  • integration_id (path): The UUID of the integration.

Request Body

{
"form_field_value": "shallom",
"form_field_label": "micah bawa"
}

Responses

  • 200: Successfully added the integration setting.
{
"status": "success",
"status_code": 200,
"message": "Integration setting added successfully"
}
  • 400: Invalid request.

Retrieve Integration Settings

  • Endpoint: /organisations/{organisation_id}/integrations/{integration_id}/settings
  • Method: GET
  • Tags: IntegrationSettings
  • Summary: Retrieve integration settings

Parameters

  • organisation_id (path): The UUID of the organization.
  • integration_id (path): The UUID of the integration.

Responses

  • 200: Successfully retrieved the integration settings.
{
"status": "success",
"status_code": 200,
"message": "Integration setting retrieved successfully",
"data": [
{
"id": "your_setting_id",
"org_id": "your_org_id",
"integration_id": "your_integration_id",
"form_field_value": "This is ",
"form_field_label": "Shallom Micah Bawa",
"created_at": "your_created_at",
"updated_at": "your_updated_at"
}
// More setting objects...
]
}
  • 404: Organisation or integration not found.

Update an Existing Integration Setting

  • Endpoint: /organisations/{organisation_id}/integrations/{integration_id}/settings
  • Method: PATCH
  • Tags: IntegrationSettings
  • Summary: Update an existing integration setting

Parameters

  • organisation_id (path): The UUID of the organization.
  • integration_id (path): The UUID of the integration.

Request Body

{
"form_field_label": "Shallom Micah Bawa"
}

Responses

  • 200: Successfully updated the integration setting.
{
"status": "success",
"status_code": 200,
"message": "Integration setting updated successfully"
}
  • 404: Organisation or integration not found.
  • 400: Invalid request.

Channel Integrations Settings

The Channel Integrations API provides endpoints to manage integrations specific to channels within organizations.

Add a New Channel Integration Setting

  • Endpoint: /organisations/{org_id}/integrations/{integration_id}/channels/{channel_id}/settings
  • Method: POST
  • Tags: Channel Integration Settings
  • Summary: Add a new setting for a channel integration

Parameters

  • org_id (path): The ID of the organization.
  • integration_id (path): The ID of the integration.
  • channel_id (path): The ID of the channel.

Request Body

{
"form_field_label": "Shallom Micah",
"form_field_value": "Bawa"
}

Responses

  • 200: Channel Integration setting added successfully.
{
"status": "success",
"status_code": 200,
"message": "Channel Integration setting added successfully"
}

Retrieve Channel Integration Settings

  • Endpoint: /organisations/{org_id}/integrations/{integration_id}/channels/{channel_id}/settings
  • Method: GET
  • Tags: Channel Integration Settings
  • Summary: Retrieve all settings for a specific channel integration

Parameters

  • org_id (path): The ID of the organization.
  • integration_id (path): The ID of the integration.
  • channel_id (path): The ID of the channel.

Responses

  • 200: Channel Integration settings retrieved successfully.
{
"status": "success",
"status_code": 200,
"message": "Channel Integration settings retrieved successfully",
"data": [
{
"id": "your_setting_id",
"org_id": "your_org_id",
"integration_id": "your_integration_id",
"channel_id": "your_channel_id",
"form_field_value": "you",
"form_field_label": "I love",
"created_at": "your_created_at",
"updated_at": "your_updated_at"
}
// More setting objects...
]
}

Update a Channel Integration Setting

  • Endpoint: /organisations/{org_id}/integrations/{integration_id}/channels/{channel_id}/settings/{setting_id}
  • Method: PATCH
  • Tags: Channel Integration Settings
  • Summary: Update a specific setting for a channel integration

Parameters

  • org_id (path): The ID of the organization.
  • integration_id (path): The ID of the integration.
  • channel_id (path): The ID of the channel.
  • setting_id (path): The ID of the setting.

Request Body

{
"form_field_value": "ouuuuuuu"
}

Responses

  • 200: Integration setting updated successfully.
{
"status": "success",
"status_code": 200,
"message": "Integration setting updated successfully"
}

Delete a Channel Integration Setting

  • Endpoint: /organisations/{org_id}/integrations/{integration_id}/channels/{channel_id}/settings/{setting_id}
  • Method: DELETE
  • Tags: Channel Integration Settings
  • Summary: Delete a specific setting for a channel integration

Parameters

  • org_id (path): The ID of the organization.
  • integration_id (path): The ID of the integration.
  • channel_id (path): The ID of the channel.
  • setting_id (path): The ID of the setting.

Responses

  • 200: Channel Integration setting deleted successfully.
{
"status": "success",
"status_code": 200,
"message": "Channel Integration setting deleted successfully"
}

Custom Integrations API Documentation

The Custom Integrations API provides endpoints to manage custom integrations for organizations, including creation, retrieval, updating, and deletion of integrations and their settings.

Create a New Integration for the Organization

  • Endpoint: /organisations/{organisationId}/integrations/custom
  • Method: POST
  • Tags: Custom Integrations
  • Summary: Creates a new integration within the specified organization.

Parameters

  • organisationId (path): The ID of the organization.

Request Body

{
"json_url": "https://www.bananaisland.com/banana.json"
}

Responses

  • 201: Integration app created successfully.
{
"status": "success",
"status_code": 201,
"message": "Integration app created successfully"
}
  • 400: Invalid JSON URL supplied.

Get Integrations for an Organization

  • Endpoint: /organisations/{organisationId}/integrations/custom
  • Method: GET
  • Tags: Custom Integrations
  • Summary: Retrieve a list of integrations for a specific organization.

Parameters

  • organisationId (path): The UUID of the organization.

Responses

  • 200: Successfully retrieved the list of integrations.
{
"status": "success",
"status_code": 200,
"message": "Integrations retrieved successfully.",
"data": [
{
"id": "0192202e-b6f3-7d23-8025-3f60675cc031",
"app_name": "Slack",
"json_url": "https://system-integration.telex.im/slack.json",
"app_url": "https://slack.com",
"app_logo": "https://media.tifi.tv/telexbucket/public/logos/slack.png",
"app_description": "Slack is a cloud-based team business and communication platform.",
"is_active": false,
"created_at": "2024-09-23T19:59:46.166781+01:00",
"updated_at": "2024-09-23T20:00:08.086829+01:00"
}
// More integration objects...
]
}
  • 400: Invalid organisation_id or request.
  • 404: Organisation not found.

Update an Organization's Integration

  • Endpoint: /organisations/{organisationId}/integrations/custom/{integrationId}
  • Method: PUT
  • Tags: Custom Integrations
  • Summary: Update an organization's integration.

Parameters

  • organisationId (path): The ID of the organization.
  • integrationId (path): The ID of the integration.

Request Body

{
"json_url": "https://www.bananaisland.com/banana.json"
}

Responses

  • 200: Integration updated successfully.
{
"status": "success",
"status_code": 200,
"message": "Integrations updated successfully"
}
  • 400: Invalid input.
  • 401: Unauthorized.
  • 404: Integration not found.

Delete an Organization's Integration

  • Endpoint: /organisations/{organisationId}/integrations/custom/{integrationId}
  • Method: DELETE
  • Tags: Custom Integrations
  • Summary: Delete an organization's integration.

Parameters

  • organisationId (path): The ID of the organization.
  • integrationId (path): The ID of the integration.

Responses

  • 200: Integration deleted successfully.
{
"status": "success",
"status_code": 200,
"message": "Integrations deleted successfully"
}
  • 400: Invalid input.
  • 401: Unauthorized.
  • 404: Integration not found.

Update an Organization's Custom Integration Settings

  • Endpoint: /organisations/{organisationId}/integrations/custom/{integrationId}/settings
  • Method: PUT
  • Tags: Custom Integrations
  • Summary: Update an organization's custom integration settings.

Parameters

  • organisationId (path): The ID of the organization.
  • integrationId (path): The ID of the integration.

Request Body

{
"setting_entry": {
"field_name": "your_field_name",
"value": "your_value"
}
}

Responses

  • 200: Custom integration settings updated successfully.
{
"status": "success",
"status_code": 200,
"message": "Integrations Settings updated successfully"
}
  • 400: Invalid input.
  • 401: Unauthorized.
  • 404: Integration not found.

Get Integration Settings for an Organization

  • Endpoint: /organisations/{organisationId}/integrations/custom/{integrationId}/settings
  • Method: GET
  • Tags: Custom Integrations
  • Summary: Retrieve a list of integration settings for a specific organization.

Parameters

  • organisationId (path): The ID of the organization.
  • integrationId (path): The ID of the integration.

Responses

  • 200: Successfully retrieved the list of integration settings.
{
"status": "success",
"status_code": 200,
"message": "Integrations retrieved successfully.",
"data": {
"field_name": "your_field_name",
"value": "your_value"
}
}
  • 400: Invalid organisation_id or request.
  • 404: Organisation not found.