---
canonical_url: "https://docs.composio.dev/toolkits/enforcedflow"
markdown_url: "https://docs.composio.dev/toolkits/enforcedflow.md"
product: "platform"
version: null
last_updated: null
---

# EnforcedFlow

EnforcedFlow routes work across teams with configurable advanced round-robin groups, agent criteria, availability, and email assignments.

- **Category:** sales & crm
- **Auth:** API_KEY
- **Composio-managed OAuth available?** N/A
- **Tools:** 5
- **Triggers:** 0
- **Slug:** `ENFORCEDFLOW`
- **Version:** 00000000_00

## Tools

### Get Group Routing Fields

**Slug:** `ENFORCEDFLOW_GET_GROUP_FIELDS`

Get detailed routing-field configuration and metadata field names for one round-robin group.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `group_id` | integer | Yes | Round-robin group ID returned by List Round Robin Groups. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Group Agents

**Slug:** `ENFORCEDFLOW_LIST_GROUP_AGENTS`

List agents in a round-robin group, optionally filtering by active status, with metadata and configured field values.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `active` | boolean | No | Filter agents by active status; omit to return both active and inactive agents. |
| `group_id` | integer | Yes | Round-robin group ID returned by List Round Robin Groups. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Round Robin Groups

**Slug:** `ENFORCEDFLOW_LIST_GROUPS`

List round-robin groups accessible to the connected account, including group IDs and summary routing-field requirements.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Select Next Agent

**Slug:** `ENFORCEDFLOW_SELECT_NEXT_AGENT`

Select the next available agent for a round-robin group using optional configured criteria. This advances the group's round-robin routing state and may consume one routing request from the account's monthly quota; it is not a read-only preview. A successful no-match response preserves agent=null and agent_found=false.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `criteria` | object | No | Routing criteria keyed by configured field name. Use a string array for MultiSelect fields and a raw string for AISelect fields. Omit or pass an empty object to match any eligible agent. |
| `group_id` | integer | Yes | Round-robin group ID returned by List Round Robin Groups. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Upsert Group Agent

**Slug:** `ENFORCEDFLOW_UPSERT_GROUP_AGENT`

Update the first agent matching a filter, or create an agent when the filter matches none. A missing or empty filter always creates an agent. Use a precise, stable filter because any filter miss takes the create path and can produce duplicate agents.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Values to set on the matched or newly created agent. Supported keys include name, active, dynamic meta, and dynamic fields. name is required when an agent is created. Configured fields may contain string arrays, numeric weights, or timezone objects with timezone, businessHoursStart, businessHoursEnd, and integer availableDays. |
| `filter` | object | No | Agent match filter. Supported keys include id, name, active, and dynamic meta. id takes priority; name and active combine with AND; meta uses JSON-contains matching. If this filter is empty or matches no agent, the operation creates a new agent, which can cause duplicates. |
| `group_id` | integer | Yes | Round-robin group ID returned by List Round Robin Groups. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
