Skip to main content
WFL
Step-by-Step Setup 10-15 minutes

Workflow Lister Setup

Workflows & Surveys Intermediate
Need more detail? Read the full guide for config deep-dives and best practices.

List all workflows in a GoHighLevel sub-account, inspect their statuses, and identify trigger types through the GHL MCP server. This quick-start walks you through authentication, your first GET /workflows call, and verifying the response data.

Prerequisites

Before listing workflows, confirm you have the following in place:

  • A GoHighLevel sub-account with at least one published workflow
  • Access to Settings > Integrations > Private Integrations in the sub-account
  • A REST client such as Postman, Insomnia, or curl in your terminal
  • Your sub-account’s locationId (found under Settings > Business Profile)
  • At least one workflow with a known name so you can verify the response

Set Up Authentication

All Workflow Lister calls require a Private Integration Token (PIT) with the workflows scope enabled.

Navigate to Settings > Integrations > Private Integrations in your sub-account. Click Create New Integration and name it something descriptive like “Workflow Reader.” Under Scopes, enable the workflows scope. This grants read access to workflow definitions, statuses, and trigger configurations.

Click Save and copy the generated token. Store it in a secure location. Every request must include the Authorization: Bearer {your-pit-token} header along with Content-Type: application/json and Version: 2021-07-28.

Set your base URL to https://services.leadconnectorhq.com. All endpoints in this guide are relative to that base.

Make Your First Call

Send a GET request to /workflows with the required locationId query parameter:

GET /workflows?locationId={your-location-id}
Authorization: Bearer {your-pit-token}
Version: 2021-07-28

This returns all workflows in the sub-account. The response includes each workflow’s id, name, status, and createdAt timestamp. Use these fields to build dashboards, audit automation coverage, or sync workflow metadata to external systems.

You can filter the list programmatically after retrieval by checking the status field for values like "draft" or "published". The API does not support server-side filtering, so pull the full list and filter client-side.

Handle the Response

A successful call returns a 200 status with an array of workflow objects:

{
  "workflows": [
    {
      "id": "wf_abc123",
      "name": "New Lead Follow-Up",
      "status": "published",
      "createdAt": "2026-01-15T10:30:00Z"
    }
  ]
}

Each workflow object contains the id you need for deeper inspection or cross-referencing with other tools. The status field tells you whether the workflow is active (published) or still in development (draft).

Common error codes: 401 means your token is invalid or lacks the workflows scope. 400 indicates a missing or malformed locationId parameter. If you receive an empty array, confirm that workflows exist in the sub-account and that your PIT belongs to the correct location.

Test Your Setup

Validate your integration with these checks:

  1. List all workflows with GET /workflows?locationId={id} and confirm a 200 response
  2. Count the results and compare against the number of workflows visible in the GHL dashboard
  3. Verify a known workflow by name, confirming the name field matches what you see in the UI
  4. Check statuses to ensure published workflows show "published" and drafts show "draft"
  5. Test with an invalid token to confirm you receive a 401, validating your error handling

Run the call twice in succession to confirm consistent results and stable authentication.

Next Steps

Read the full Workflow Lister Guide for advanced patterns including workflow auditing and automation gap analysis. From here, explore Survey Manager for managing survey configurations and Email Verification for validating contact deliverability before triggering workflow actions.

Stay sharp. New guides and playbooks as they drop.