Import integrated account into Truto ​
Please use this endpoint only for importing existing app credentials into Truto. To connect new Integrated accounts, please use the Link token approach.
Endpoint ​
POST /integrated-accountRequest Body ​
The ID of the tenant.
acme-1The ID of the environment integration (installed integration).
b179ad55-db02-4bd4-b7a4-d2c173eee9aeThe context of the integrated account.
You can find these in the Variables section of an integrated account in the Truto UI.
For creating an integrated account with authentication_type oauth2, oauth2_client_credentials and keka_oauth, set the oauth object to
{
"token": {
"access_token": "<token_value",
"refresh_token": "<if_available>",
"expires_in": <value>
}
}
For api_key, please refer the fields section of credentials object of the integration.
{
"oauth": {
"token": {
"access_token": "secret_foo_bar",
"refresh_token": "refresh_foo_bar",
"expires_in": 3600
}
}
}Type of authentication used.
oauth2api_keyoauth2_client_credentialskeka_oauth
Response Body ​
The ID of the integrated account.
1ba1f401-7183-47c5-9e39-e8e257e3c795The ID of the tenant.
acme-1The ID of the environment integration (installed integration).
b179ad55-db02-4bd4-b7a4-d2c173eee9aeThe context of the integrated account. You can find these in the Variables section of an integrated account in the Truto UI.
{
"zendesk_subdomain": "truto"
}Status of the integrated account.
active- Everything is fine and the account should workconnecting- Post install and validation steps are being runpost_install_error- There was an error while running post install stepsvalidation_error- There was an error while running validation stepsneeds_reauth- There was an error while refreshing the credentials in case of OAuth authentication or the credentials are no longer valid in other authentication methods. The integrated account needs to be reauthorized.
activeconnectingpost_install_errorvalidation_errorneeds_reauth
The last error that occurred while running the post install or validation steps.
The results of the post install and validation steps that ran on the integrated account.
The date and time when the integrated account was created.
2021-08-10T10:00:00.000ZThe date and time when the integrated account was last updated.
2021-08-10T10:00:00.000ZWhether the integrated account is in sandbox mode or not. Sandbox integrated accounts do not allow any "write" operations.
Type of authentication used.
oauth2api_keyoauth2_client_credentialskeka_oauth
The ID of the environment this integrated account belongs to.
8a2b104d-74a6-47f2-b93e-c6b611e82391The integration associated with this integrated account.
The ID of the integration.
4a4de828-f4db-4c9e-adfd-434e0864c3c7The name of the integration.
zendeskThe category of the integration.
helpdeskWhether the integration is in beta or not. Beta integrations might not have been tested completely and are not recommended for production environments.
The configuration object defining the underlying API of the integration.
{
"base_url": "https://api.example.com",
"label": "Example API Integration",
"logo": "https://example.com/logo.png",
"icon": "https://example.com/icon.png",
"headers": {
"Content-Type": "application/json",
"Accept": "application/json",
"User-Agent": "truto"
},
"query": {
"search": "{{search_query}}",
"filter": "{{filter_criteria}}"
},
"query_array_format": "comma",
"actions": {
"sync_users": {
"type": "request",
"config": {
"method": "post",
"path": "/sync/users",
"headers": {
"Authorization": "Bearer {{oauth.token.access_token}}"
},
"body": {
"users": "{{context.users}}"
}
}
}
},
"credentials": {
"oauth2": {
"format": "oauth2",
"config": {
"client": {
"id": "your-client-id",
"secret": "your-client-secret"
},
"auth": {
"tokenHost": "https://auth.example.com",
"tokenPath": "/oauth/token",
"refreshPath": "/oauth/refresh"
},
"options": {
"scopeSeparator": " ",
"authorizationMethod": "header",
"bodyFormat": "form"
},
"fields": [
{
"name": "client_id",
"label": "Client ID",
"type": "text",
"required": true
},
{
"name": "client_secret",
"label": "Client Secret",
"type": "password",
"required": true
}
],
"tokenParams": {
"grant_type": "client_credentials"
},
"refreshParams": {
"grant_type": "refresh_token"
},
"tokenExpiryDuration": "3600"
}
}
},
"authorization": {
"format": "bearer",
"config": {
"token": "{{oauth.token.access_token}}"
}
},
"pagination": {
"format": "page",
"config": {
"page_key": "page",
"limit_key": "per_page"
}
},
"rate_limit": {
"is_rate_limited": true,
"retry_after_header_expression": "Retry-After",
"rate_limit_header_expression": "X-RateLimit-Remaining"
},
"resources": {
"users": {
"list": {
"method": "get",
"path": "/users",
"response_path": "data.users",
"headers": {
"Authorization": "Bearer {{oauth.token.access_token}}"
},
"query": {
"page": "{{pagination.page}}",
"per_page": "{{pagination.per_page}}"
},
"pagination": {
"format": "page",
"config": {
"page_key": "page",
"limit_key": "per_page"
}
},
"authorization": {
"format": "bearer",
"config": {
"token": "{{oauth.token.access_token}}"
}
},
"rate_limit": {
"is_rate_limited": true,
"retry_after_header_expression": "Retry-After",
"rate_limit_header_expression": "X-RateLimit-Remaining"
},
"examples": {
"response": "{\n \"data\": {\n \"users\": [\n {\n \"id\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"name\": \"John Doe\",\n \"email\": \"john.doe@example.com\"\n }\n ]\n }\n}\n"
}
}
},
"orders": {
"create": {
"method": "post",
"path": "/orders",
"body": {
"user_id": "{{context.user_id}}",
"items": "{{context.items}}"
},
"response_path": "data.order",
"headers": {
"Authorization": "Bearer {{oauth.token.access_token}}"
},
"authorization": {
"format": "bearer",
"config": {
"token": "{{oauth.token.access_token}}"
}
}
}
}
},
"webhook": {
"signature_verification": {
"format": "HMAC-SHA256",
"config": {
"secret": "your-webhook-secret",
"algorithm": "sha256",
"parts": [
"header",
"body"
]
}
},
"handle_verification": "verify_webhook_signature"
},
"error_expression": "{{response.error}}"
}The ID of the team that owns this integration.
05daecaf-4365-42e8-8370-8127de5dd717The sharing policy of the integration.
allowaskdeny
allowThe date and time when the integration was created.
2021-08-10T10:00:00.000ZThe date and time when the integration was last updated.
2021-08-10T10:00:00.000ZThe list of context fields that are stored in the object store.