- Create a data connector
Create a new data connector. The connector is created in draft state. Configure its URL, headers, data inputs, and other settings, then set it to live when ready.
OAuth tokens must have the read_write_data_connectors scope.
Intercom API version.
If you omit the header, the API uses the version set in your app package, and 1.0 if none is set.
A description of what this data connector does.
The internal description of the data connector. If omitted, it is an empty string.
The HTTP method used when calling the external API.
The URL of the external API endpoint. Supports template variables like {{order_id}}.
Whether the connector is used directly by Fin (true) or only in workflows (false). Defaults to false.
The user types this connector is available for.
[ "leads", "visitors" ]
Whether the connector requires customer authentication before executing. Defaults to false.
Whether authentication is bypassed entirely (public endpoint). Defaults to false.
Whether authentication is enforced. On workspaces where this is supported, it takes precedence over customer_authentication and bypass_authentication when sent together, and setting it to false disables OTP.
Whether to validate that all required data inputs have values before executing.
A sample JSON response from the external API. Auto-generates response_fields and sets configuration_response_type to mock_response_type.
{ "order": { "id": 12345, "status": "shipped" } }
- The production API serverhttps://api.intercom.io/data_connectors
- The european API serverhttps://api.eu.intercom.io/data_connectors
- The australian API serverhttps://api.au.intercom.io/data_connectors
- Data connector created
- Minimal - name only
- With mock response
curl -i -X POST \
https://api.intercom.io/data_connectors \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-H 'Intercom-Version: 2.17' \
-d '{
"name": "Get Order Status",
"description": "Looks up order status from an external service",
"http_method": "get",
"url": "https://api.example.com/orders/{{order_id}}/status",
"direct_fin_usage": true,
"audiences": [
"leads",
"visitors"
],
"headers": [
{
"name": "Content-Type",
"value": "application/json"
}
],
"data_inputs": [
{
"name": "order_id",
"type": "string",
"description": "The order ID to look up",
"required": true,
"default_value": ""
}
],
"customer_authentication": true,
"bypass_authentication": false,
"validate_missing_attributes": true
}'Data connector created
A description of what this data connector does.
The URL of the external API endpoint. Supports template variables like {{order_id}}.
The request body template. Supports template variables.
HTTP headers for the request. Header values are always redacted as "****" in responses.
[ { "name": "Authorization", "value": "****" } ]
The HTTP method used by the data connector.
The audience types this connector targets.
[ "users", "leads" ]
The expected response format from the connector.
The type of data transformation applied to the response.
The code block used to transform the connector's response. Present only when data_transformation_type is code_block_transformation and a code block exists; otherwise omitted.
{ "code": "def transform(response):\n return {\"status\": response[\"order_status\"]}\n\nreturn transform(inputs['data'])\n", "language": "python" }
Timeout in milliseconds for the client function, if applicable.
Whether OTP authentication is enabled for this connector.
The time the data connector was last updated.
{ "type": "data_connector", "id": "125", "name": "Get Order Status", "description": "Looks up order status from an external service", "internal_description": "", "state": "draft", "url": "https://api.example.com/orders/{{order_id}}/status", "headers": [ { … } ], "http_method": "get", "direct_fin_usage": true, "audiences": [ "leads", "visitors" ], "execution_type": "server_side", "configuration_response_type": "test_response_type", "data_transformation_type": "full_access", "client_function_timeout_ms": 30000, "data_inputs": [ { … } ], "response_fields": [], "object_mappings": [], "token_ids": [], "customer_authentication": true, "bypass_authentication": false, "enforce_auth": true, "validate_missing_attributes": true, "created_by_admin_id": "128", "updated_by_admin_id": "128", "created_at": "2026-03-19T11:27:36Z", "updated_at": "2026-03-19T11:27:36Z", "execution_results_url": "/data_connectors/125/execution_results" }