Project settings and access tools
- list_project_variables: List the project-level template variables.
- get_consent_settings: Get the project's consent configuration.
- get_frequency_policies: Get the project's frequency cap policy settings.
- list_project_users: List users with access to a project.
- search_api_triggers: List the API trigger definitions in a project, or fetch one by ID.
list_project_variables
Lists every project-level variable. Project variables are global key-value pairs that you can reference as {{ project_variable.reference }} substitutions inside Jinja templates across all campaigns — for example, brand name, support email, or base URL.
Request parameters
| Name | Type | Required? | Description |
|---|---|---|---|
project_id | str | Yes | The project ID returned by list_projects. |
Response parameters
The tool returns a ProjectVariablesResponse object with the following parameters:
| Parameter | Type | Description |
|---|---|---|
success | bool | Whether the request succeeded. |
data | list[ProjectVariable] | The project-level variable definitions. |
error | str | null | Error message if the request failed. |
The ProjectVariable object has the following fields:
| Field | Type | Description |
|---|---|---|
reference | str | The reference key. Use it as {{ project_variable.reference }} in Jinja templates. |
value | any | null | The current value of the variable. |
type | str | null | The data type — string, number, boolean, and so on. |
description | str | null | A human-readable description of what the variable represents. |
get_consent_settings
Returns the project's consent configuration: GDPR mode, consent category definitions, and per-channel consent settings. Consent categories decide which campaigns a customer can receive based on their consent state.
Request parameters
| Name | Type | Required? | Description |
|---|---|---|---|
project_id | str | Yes | The project ID returned by list_projects. |
Response parameters
The tool returns a ConsentSettingsResponse object with the following parameters:
| Parameter | Type | Description |
|---|---|---|
success | bool | Whether the request succeeded. |
data | any | null | The project's consent configuration: GDPR mode, consent categories, and per-channel consent settings. The exact shape depends on the project. |
error | str | null | Error message if the request failed. |
get_frequency_policies
Returns the frequency cap policy settings for a project. Frequency policies limit how often a customer can receive campaign messages within a time window. The response includes every policy, built-in system policies among them, along with the ID of the project's default policy.
Each policy holds one or more customer segments, and each segment carries its own message rate limits.
Request parameters
| Name | Type | Required? | Description |
|---|---|---|---|
project_id | str | Yes | The project ID returned by list_projects. |
Response parameters
The tool returns a FrequencyPoliciesResponse object with the following parameters:
| Parameter | Type | Description |
|---|---|---|
success | bool | Whether the request succeeded. |
policies | list[FrequencyPolicy] | All frequency policies defined for the project, including system policies. |
default_policy_id | str | null | The ID of the default policy applied to campaigns when no specific policy is selected. |
error | str | null | Error message if the request failed. |
The FrequencyPolicy object has the following fields:
| Field | Type | Description |
|---|---|---|
id | str | The policy ID, for example unlimited-policy or smart-newsletter-policy. |
name | str | The display name of the policy. |
system | bool | Whether this is a built-in system policy. |
blocked | bool | Whether this policy is blocked from use by non-admin users. |
access_locks | list[str] | User group IDs for which the policy is locked. Members of those groups can't run campaigns with it. |
locked_for_current_user | bool | Whether the current user is restricted from selecting this policy for campaigns. |
segments | list[FrequencyPolicySegment] | An ordered list of customer segments, each with its own frequency rules. The last segment is always a catch-all. |
Each FrequencyPolicySegment has an optional id, a name, an optional customer_filter (opaque filter conditions, where the last segment is a catch-all with an empty filter), and rules, a list of FrequencyPolicyRule. Each FrequencyPolicyRule has a limit (the maximum messages allowed, where 0 suppresses all) and a duration, a FrequencyPolicyDuration with count and units fields for the time window.
list_project_users
Lists every user with access to a project, including their email, name, username, and role in this project.
Request parameters
| Name | Type | Required? | Description |
|---|---|---|---|
project_id | str | Yes | The project ID returned by list_projects. |
Response parameters
The tool returns a ProjectUsersResponse object with the following parameters:
| Parameter | Type | Description |
|---|---|---|
success | bool | Whether the request succeeded. |
data | list[ProjectUser] | The users with access to this project. |
error | str | null | Error message if the request failed. |
The ProjectUser object has the following fields:
| Field | Type | Description |
|---|---|---|
id | str | The user's ID. |
email | str | null | The user's email address. |
username | str | null | The username. |
first_name | str | null | The user's first name. |
last_name | str | null | The user's last name. |
role | str | null | The user's role in this project, for example admin, editor, or viewer. |
search_api_triggers
Searches the API trigger definitions in a project, or fetches one by ID. API triggers let external systems fire a custom event into the Engagement platform with an HTTP call, which can then enter customers into scenarios. Omit trigger_id to list all API triggers — you get summary records: name, tags, archived flag, and metadata. Pass trigger_id to fetch the full definition of a single trigger, including the event type it fires, the payload property schema, and the scenarios that listen to it.
Request parameters
| Name | Type | Required? | Description |
|---|---|---|---|
project_id | str | Yes | The project ID returned by list_projects. |
trigger_id | str | null | No | The API trigger ID for direct lookup. Omit to list all; provide to fetch one. |
Response parameters
The tool returns an ApiTriggersResponse when trigger_id is omitted, or an ApiTriggerResponse when it's provided.
The ApiTriggersResponse object has the following parameters:
| Parameter | Type | Description |
|---|---|---|
success | bool | Whether the request succeeded. |
data | list[ApiTriggerSummary] | The API trigger summaries. |
error | str | null | Error message if the request failed. |
The ApiTriggerSummary object has the following fields:
| Field | Type | Description |
|---|---|---|
id | str | The API trigger's unique ID. |
name | str | The trigger's display name. |
archived | bool | Whether the trigger has been archived. |
tags | list[str] | User-defined tags. |
created | any | null | Unix timestamp of when the trigger was created. |
created_by_display_name | str | null | Display name of the creator. |
edited | any | null | Unix timestamp of the last edit. |
edited_by_display_name | str | null | Display name of the last editor. |
The ApiTriggerResponse object has the following parameters:
| Parameter | Type | Description |
|---|---|---|
success | bool | Whether the request succeeded. |
data | ApiTrigger | null | The full API trigger definition. |
error | str | null | Error message if the request failed. |
The ApiTrigger object adds the following fields on top of the summary record:
| Field | Type | Description |
|---|---|---|
event_type | str | null | The event type the trigger fires when it is called. |
properties | list[any] | The property definitions for the trigger payload: name, type, and required flag. |
scenario_ids | list[str] | IDs of the scenarios that use this API trigger as their entry point. |
Updated 13 days ago

