Appearance
Triggers Area
BETA
Agent Gateway is in BETA, and we're continuing to expand its capabilities. Your feedback helps shape what we build next—reach out to us through Relewise Support.
Connected tools can list existing Triggers and inspect their configured criteria, evaluation windows, and enabled states. These operations are read-only and idempotent. Reading a configuration never evaluates a Trigger or sends a webhook.
The Triggers Area must be allowed in the Agent Gateway Configuration before its REST endpoints or MCP tools can be used.
Available Operations
| Capability | REST Endpoint | Operation ID | MCP Tool |
|---|---|---|---|
| List configurations | GET /api/v1/datasets/{datasetId}/triggers/configurations | TriggersListConfigurations | list_trigger_configurations |
| Get a configuration | GET /api/v1/datasets/{datasetId}/triggers/configurations/{configurationId} | TriggersGetConfiguration | get_trigger_configuration |
REST paths on this page are relative to https://my.relewise.com/agents. MCP tools require datasetId; see Get Started with Agent Gateway for connection and Dataset selection instructions.
List configurations to discover a Configuration ID, then get the selected configuration to inspect its criteria. You can also get a configuration directly using a known Configuration ID. Dataset IDs and Configuration IDs are GUIDs.
Listing and Pagination
REST supports these optional query parameters:
| Parameter | Default | Allowed Values |
|---|---|---|
pageNumber | 1 | Integers starting at 1. |
pageSize | 50 | Integers from 10 through 100, inclusive. |
Results are ordered by name using a case-insensitive ordinal comparison, then by Configuration ID. The response contains globallyEnabled, configurations, and pagination. Pagination includes pageNumber, pageSize, totalResults, and totalPages. Empty or out-of-range pages return an empty configurations array. When there are no configurations, totalPages is 0.
For example:
http
GET /api/v1/datasets/{datasetId}/triggers/configurations?pageNumber=1&pageSize=50
Authorization: Bearer <personal-access-token>An illustrative response with one configuration:
json
{
"globallyEnabled": true,
"configurations": [
{
"id": "0d38706e-531d-4b92-9c65-41215656d5f8",
"type": "abandonedSearch",
"name": "Abandoned Product search",
"description": "Follow up on abandoned Product searches.",
"group": null,
"enabled": true,
"within": "1 day",
"created": "2026-09-07T08:00:00Z",
"modified": "2026-09-07T09:00:00Z"
}
],
"pagination": {
"pageNumber": 1,
"pageSize": 50,
"totalResults": 1,
"totalPages": 1
}
}The MCP tool list_trigger_configurations requires datasetId and accepts pageNumber and pageSize with the same defaults and limits as REST. It returns the same response fields in structured content, including globallyEnabled and pagination metadata. See Retrieve Paginated Lists for an example of retrieving subsequent pages. A known Configuration ID can also be fetched directly.
Configuration Details
REST get responses contain a configuration object. MCP get_trigger_configuration requires datasetId and configurationId and returns the same envelope in structured content. If the configuration is absent, MCP returns {"configuration": null}.
REST returns 400 Bad Request for invalid input, 404 Not Found for a missing Dataset or configuration, and 401 Unauthorized or 403 Forbidden for authentication or access failures.
All summary fields appear directly on the detail object: id, type, name, description, group, enabled, within, created, and modified. The group is null when unassigned, and created and modified are date-time timestamps. Details add withinMinutes, the typed configuration object, and userConditionsJson.
For the example above, the detail response could be:
json
{
"configuration": {
"id": "0d38706e-531d-4b92-9c65-41215656d5f8",
"type": "abandonedSearch",
"name": "Abandoned Product search",
"description": "Follow up on abandoned Product searches.",
"group": null,
"enabled": true,
"within": "1 day",
"created": "2026-09-07T08:00:00Z",
"modified": "2026-09-07T09:00:00Z",
"withinMinutes": 1440,
"configuration": {
"type": "abandonedSearch",
"considerAbandonedAfterMinutes": 30,
"searchTypesInPrioritizedOrder": ["Product"],
"suppressOnEntityFromSearchResultViewed": true,
"searchTermConditionJson": null
},
"userConditionsJson": null
}
}Enabled States and Evaluation Windows
The required globallyEnabled boolean in the list response reports whether Trigger evaluation is enabled for the Dataset. Evaluation requires both this global state and the individual configuration's enabled state. Enabled states alone do not establish that criteria matched or a webhook was sent. If no global configuration has been stored, the global state is treated as enabled; the response exposes no separate missing-state flag.
The within field is human-readable display text. Use the integer withinMinutes for the evaluation window in minutes. This window is not necessarily the inactivity delay. Inspect the type-specific configuration and user conditions to understand timing. In the example, the evaluation window is 1,440 minutes, while considerAbandonedAfterMinutes specifies 30 minutes of inactivity.
Typed Configuration
The type field is a stable discriminator. The typed configuration object supports these eight values:
| Type | Configuration Fields |
|---|---|
abandonedCart | cartName (nullable; no specific cart name when null) and selectedPropertiesJson. |
abandonedSearch | considerAbandonedAfterMinutes, searchTypesInPrioritizedOrder (Product, ProductCategory, or Content), suppressOnEntityFromSearchResultViewed, and searchTermConditionJson. |
productInterest | productViews (nullable count range), filtersJson, and resultSettingsJson. |
productCategoryInterest | categoryViews and productViews (nullable count ranges), and filtersJson. |
contentCategoryInterest | categoryViews and contentViews (nullable count ranges), and filtersJson. |
userActivity | Only type. The evaluation window and user conditions are on the enclosing detail object. |
productChange | entityPropertySelectorJson, changeJson, beforeChangeFiltersJson, afterChangeFiltersJson, and resultSettingsJson. |
variantChange | entityPropertySelectorJson, changeJson, beforeChangeFiltersJson, afterChangeFiltersJson, and resultSettingsJson. |
Count ranges contain inclusive minimum and maximum bounds. A null bound is unbounded. For example, this typed configuration requires at least three Product views and sets no upper bound:
json
{
"type": "productInterest",
"productViews": { "minimum": 3, "maximum": null },
"filtersJson": null,
"resultSettingsJson": null
}Scoped JSON Fields
Fields ending in Json contain JSON-encoded SDK documents and are nullable when not configured. Parse non-null strings as JSON before inspecting their contents. The userConditionsJson field contains an encoded array of User Conditions; null means no condition collection was provided.
The scoped documents describe property selections, search-term conditions, Filters, change definitions, or result settings. Preserve SDK $type polymorphism metadata and case-sensitive values, including Data Keys, when storing or forwarding them. SDK $type metadata inside these documents is separate from the public type discriminator in the table above.
For exact required and nullable shapes, use the Agent Gateway API reference and the schemas returned by MCP tool discovery.
Scope and Limitations
The Triggers Area exposes configuration inspection only. It does not expose execution logs, execution summaries, diagnostics, writes, deletion, webhook tests, retries, or a standalone global-state endpoint. Webhook delivery settings, credentials, and infrastructure settings are omitted.