Workflows
v1

Get Workflow Details

Fetch a single workflow in full, including its complete definition of triggers and steps.

Use include to pull in the user who created it, the user who turned it off, its recent run statistics, and the errors it has run into.

A workflow belonging to another account is never returned — the request fails with 404 instead.

Credit Note: Retrieving a workflow does not consume credits.

:::info Requires the workflows:read OAuth2 scope. :::

get/v1/workflows/{id}

Path parameters

idstring required

The workflow ID.

Query parameters

account_idstring required

The Leadfeeder Account ID. The Account ID can be retrieved using the List Accounts endpoint.

includestring

Comma-separated list of related resources to inline inside each workflow's relationships block. Unknown values are silently ignored.

Supported values:

  • created_by — the user who created the workflow.

  • disabled_by — the user who last turned the workflow off.

  • run_stats — how often the workflow ran recently, and how much of that failed.

  • errors — the failures the workflow has run into, grouped by step and message.

By default (no include), created_by and disabled_by carry only an id / type reference (or null), and run_stats and errors are left out of the response altogether.

Response

Success

Example response

{
  "data": {
    "type": "workflow",
    "id": "9f8b7c6d5e4f",
    "attributes": {
      "name": "Route hot leads to Slack",
      "description": "Notifies #sales whenever a company lands on the Hot Leads list.",
      "workflow_type": "company",
      "version": 3,
      "definition_version": "V1",
      "definition": {
        "triggers": [
          {
            "name": "company_added_to_list",
            "filters": [
              {
                "attribute": "list_id",
                "op": "eq",
                "value": "42"
              }
            ],
            "options": {
              "type": "list"
            }
          }
        ],
        "steps": {
          "add_to_hot_leads": {
            "action_name": "add_organization_to_list",
            "options": {
              "list_id": "42"
            }
          },
          "notify_sales": {
            "action_name": "send_company_to_slack",
            "options": {
              "channel": "#sales"
            }
          }
        },
        "order": {
          "trigger": [
            "add_to_hot_leads"
          ],
          "add_to_hot_leads": [
            "notify_sales"
          ]
        }
      },
      "disabled_at": "2026-08-01T10:00:00Z",
      "created_at": "2026-07-20T09:15:00Z",
      "updated_at": "2026-08-01T10:00:00Z",
      "app_url": "https://app.leadfeeder.com/z/123456/workflows/9f8b7c6d5e4f"
    },
    "relationships": {
      "created_by": {
        "id": "123456"
      },
      "disabled_by": {
        "id": "123456"
      },
      "run_stats": {
        "type": "workflow_run_stats",
        "id": "9f8b7c6d5e4f",
        "attributes": {
          "triggered_count": 128,
          "failed_count": 3,
          "last_run_at": "2026-08-05T14:22:31Z"
        }
      },
      "errors": [
        {
          "type": "workflow_error",
          "id": "7d3f1a90c2b4e6f8",
          "attributes": {
            "step_id": "notify_sales",
            "error_code": "connection_unauthorized",
            "error_message": "The Slack connection is no longer authorised.",
            "count": 12,
            "first_seen_at": "2026-07-29T08:03:00Z",
            "last_seen_at": "2026-08-05T14:22:31Z"
          }
        }
      ]
    }
  },
  "meta": {
    "request_id": "cf054205-dd8c-4473-8689-07c30fe0789f"
  }
}

Changes