Who can use this: Tech admin
Available on: Gong Engage
Use the Gong Engage API to read flows and to add people to or remove them from flows, from another system, without opening Gong. For example, a data platform or an enrichment tool can start outreach as soon as it finds a new contact.
API requests follow the same eligibility rules as adding people in Gong. A successful response does not mean everyone was added, so check the response for each person.
Engage must be set up before you use the API. Learn more about setting up Engage.
What the API can do
Seven endpoints read flows and move people in and out of them. Some endpoints use a flow instance, which is one contact or lead’s version of a flow. Gong creates one for each person you add to a flow.
Endpoint | What it does | API reference |
|---|---|---|
| Returns flows and their details. | |
| Returns flow folders. | |
| Returns people and the flows they are in. | |
| Adds contacts or leads to a flow. It also accepts the cool-off override option. | |
| Adds contacts or leads to a flow regardless of the cool-off period. It requires the write scope. | |
| Removes one person from their flows. You identify the person by CRM ID. | |
| Removes people from flows. You identify each one by a flow instance ID. |
Authentication and scopes
Send a Bearer token with every request. Each endpoint needs a scope, which is a permission on your API credentials. Give a system only the read scope if it should view flows but never change them.
Endpoints that return flows, folders, and people need
api:flows:read.Endpoints that add or remove people need
api:flows:write.
How flow visibility affects what you get back
Each flow and folder has a visibility setting, and the API returns only the flows and folders that the requesting team member is allowed to see. If a flow seems to be missing from a response, visibility is the most likely reason.
Visibility | Who can see and use it |
|---|---|
Company | Everyone in the company can see it. Editing requires the Create and manage company flows permission. |
Personal | Only the team member who created it can see it. |
Shared | The creator and the team members they shared it with can see it. Those team members can add people to a shared flow, or add flows to a shared folder. |
Two parameters name a team member, and they do different things.
flowEmailOwnerreturns the personal and shared flows of one team member.flowInstanceOwnerEmailsets who owns the to-dos created when someone is added to a flow.
Note:
The API does not return flows in a deleted folder. It also does not return flows in a folder that the requesting team member cannot access.
Adding people to a flow
To add people, send a flow ID and a comma-separated list of CRM IDs to the assign endpoint. Gong creates a flow instance for each person and starts the outreach.
Some problems affect the whole request, and the API returns an HTTP error.
400: The request is malformed, or it lists too many people.401: The request is not authenticated.403: The owner is not valid, or there is no Engage license.404: The flow does not exist or was deleted.429: The request exceeds the rate limit.500: Gong could not process the request.
Other problems affect one person at a time. In these cases the API still returns 200, and the response lists each failure by person, with an error code and a message. A person who is not added can fail with one of these codes, which are the documented per-person failures: InvalidArgument, InvalidState, or UnexpectedError. Gong does not add a person when:
The person has opted out.
The person is in a cool-off period, unless the flow’s ruleset overrides the cool-off requirement.
The person is already in the flow.
The person is already in another flow, and only one flow is allowed at a time.
The flow assignee (the person at your company that the flow to-dos will be assigned to) doesn’t have an Engage seat.
Overriding flow content for added people
When you add people to a flow, you can replace parts of the flow's content for the flow instances created by that request. This lets you customize outreach beyond the flow’s existing content and field placeholders. The override doesn’t change the underlying flow.
What you can override | Details |
|---|---|
Step number | The step to override, for example |
Subject | The subject line of that step. It applies to every to-do type, such as emails and call scripts. It can contain field placeholders, for example |
Body HTML | The body of that step. It applies to every to-do type. It can contain HTML and field placeholders, for example |
Field placeholder values | Key-value pairs. Each key is a placeholder already in the subject, body, or flow description, and its value replaces the placeholder. A value can contain HTML, including a full paragraph. Learn more about field placeholders. |
Flow description | The description of that flow instance. It can contain HTML. It is useful for flows that start automatically, because the rep who gets the to-do can see why the person was added. |
A request with a content override includes:
The flow ID
The contact ID
The owner of the new to-dos
The content to override
Note:
New placeholder values replace only the values you send. The rest of the flow content stays the same, so you can change one value without resending the others.
Removing people from flows
Choose the removal method that matches the IDs you have.
Method | How it works |
|---|---|
By CRM ID | Send |
By flow instance | Send the flow instance IDs to remove. Get each ID from the |
Important:
With both methods, a removal that fails is left out of the response, and the API does not return an error. The person stays in the flow. Compare the people you sent with the people in the response, and retry the ones that are missing.
Both removal endpoints return only these HTTP errors: 400, 401, 429, and 500.
Limits
Each request is capped at a set number of people, so split larger lists into several requests. The API also limits how many requests you can send.
Limit | Value |
|---|---|
Default rate limit | 3 requests per second and 10,000 requests per day |
Add people to a flow | Up to 200 people per request |
Remove by flow instance | 200 people per request |
Remove by CRM ID | One person per request |
Frequently asked questions
Can the API add someone who has opted out?
No. The same opt-out and eligibility rules apply as when a rep adds someone in Gong. The API still returns 200, and the response lists the person as a failure with an error code and a message.
Why is a flow missing from the response?
Check the flow's visibility first. A personal flow belongs to one team member who created it. A shared flow is visible only to the people it was shared with. The API never returns flows in a deleted folder or in a folder the requester cannot access. The get /v2/flows endpoint returns company flows by default. To include a specific rep’s personal flows and flows shared with that rep, provide that rep’s email address in flowEmailOwner.