# Export a workflow

Export a workflow configuration by its ID. This endpoint returns the complete workflow definition including its steps, targeting rules, and attributes.
The `id` in the path is the workflow's ruleset ID, the number at the end of the workflow's URL in Intercom (`https://app.intercom.com/a/apps/<app_id>/automation/workflows/<id>`). The `workflow.id` in the response is a different ID, so don't pass it back as `id`.
This endpoint is designed for EU Data Act compliance, allowing customers to export their workflow configurations.
This endpoint is available in the Preview API version. We may make iterative improvements, including adding new fields or refining existing ones.

Endpoint: GET /export/workflows/{id}
Version: Preview
Security: bearerAuth

## Path parameters:

  - `id` (string, required)
    The ruleset ID of the workflow. This is the number at the end of the workflow's URL in Intercom, `https://app.intercom.com/a/apps/<app_id>/automation/workflows/<id>`. It is not the `workflow.id` returned in the response, so don't pass that value back here.

## Header parameters:

  - `Intercom-Version` (string)

## Response 200 fields (application/json):

  - `export_version` (string)
    The version of the export format.
    Example: 1.0

  - `exported_at` (string)
    The timestamp when the export was generated.
    Example: 2026-01-26T12:00:00Z

  - `app_id` (integer)
    The workspace identifier.
    Example: 12345

  - `workflow` (object)
    The workflow configuration.

  - `workflow.id` (string)
    The unique identifier for the workflow. This is not the ruleset ID that the export endpoint's `id` path parameter expects.
    Example: 67890

  - `workflow.title` (string)
    The title of the workflow.
    Example: My Workflow

  - `workflow.description` (string)
    The description of the workflow.
    Example: A workflow that handles customer inquiries

  - `workflow.trigger_type` (string)
    The type of trigger that starts this workflow.
    Example: inbound_conversation

  - `workflow.state` (string)
    The current state of the workflow.
    Enum: "live", "draft", "paused"

  - `workflow.target_channels` (array)
    The channels this workflow targets.
    Example: ["chat"]

  - `workflow.preferred_devices` (array)
    The preferred devices for this workflow.
    Example: ["desktop","mobile"]

  - `workflow.created_at` (string)
    When the workflow was created.
    Example: 2025-06-15T10:30:00Z

  - `workflow.updated_at` (string)
    When the workflow was last updated.
    Example: 2026-01-20T14:45:00Z

  - `workflow.targeting` (object)
    The targeting rules for this workflow.

  - `workflow.snapshot` (object)
    The current snapshot of workflow steps and configuration.

  - `workflow.attributes` (array)
    Custom attributes defined for this workflow.

  - `workflow.embedded_rules` (array)
    Rules embedded within the workflow steps.

## Response 401 fields (application/json):

  - `type` (string, required)
    The type is error.list
    Example: error.list

  - `request_id` (string)
    Example: f93ecfa8-d08a-4325-8694-89aeb89c8f85

  - `errors` (array, required)
    An array of one or more error objects

  - `errors.code` (string, required)
    A string indicating the kind of error, used to further qualify the HTTP response code.
    Example: unauthorized

  - `errors.message` (string)
    Optional. Human readable description of the error.
    Example: Access Token Invalid

## Response 404 fields (application/json):

  - `type` (string, required)
    The type is error.list
    Example: error.list

  - `request_id` (string)
    Example: f93ecfa8-d08a-4325-8694-89aeb89c8f85

  - `errors` (array, required)
    An array of one or more error objects

  - `errors.code` (string, required)
    A string indicating the kind of error, used to further qualify the HTTP response code.
    Example: unauthorized

  - `errors.message` (string)
    Optional. Human readable description of the error.
    Example: Access Token Invalid

## Response 503 fields (application/json):

  - `type` (string, required)
    The type is error.list
    Example: error.list

  - `request_id` (string)
    Example: f93ecfa8-d08a-4325-8694-89aeb89c8f85

  - `errors` (array, required)
    An array of one or more error objects

  - `errors.code` (string, required)
    A string indicating the kind of error, used to further qualify the HTTP response code.
    Example: unauthorized

  - `errors.message` (string)
    Optional. Human readable description of the error.
    Example: Access Token Invalid

