# Non-Conversational Triggers

### 📌 Overview

Non-Conversational Triggers allow indigo.ai agents and workflows to be activated by external events, such as calendar updates, GitLab merge requests, or tickets created via Zapier.\
This article explains how to configure the two available REST endpoints, set up webhooks, and use advanced variables (List and Map) in your payloads.

{% hint style="danger" %}
This feature is **only available via our Platform API**. There is no front-end interface for Non-Conversational Triggers.
{% endhint %}

### 💡 Why It Matters

Your agents can now react to real-world events happening **outside** the conversation — no user message required.

* **Automation beyond the conversation** — trigger agents from any external system: CRMs (Salesforce, HubSpot, Zendesk), e-commerce (Shopify), ERPs (SAP, Microsoft Dynamics), collaboration tools (Google Workspace), automation platforms (Zapier, Make).
* **Real-time reactions** — from customer support updates to lead management workflows, agents react instantly.
* **New business use cases** — customer service, logistics, sales, post-sales support.

**Example use cases:**

* *Post-sales assistance* — a Zendesk ticket is updated after a delivery issue → an agent analyzes the case, checks internal data, and proactively contacts the customer with a resolution path.
* *Lead enrichment* — a new lead is captured via a Zapier form → the agent enriches the profile against internal records and forwards a qualified summary to the sales CRM.

### 🔗 Endpoints

Indigo.ai provides two REST endpoints for triggering:

* **Async endpoint** →\
  <https://platform.indigo.ai/rest/trigger/async/\\{{project\\_token\\}}>
  * Returns HTTP status 200 immediately upon receiving the request.
  * Does not wait for the execution of the agent or workflow.
  * Use case: when you don’t need the agent’s response.<br>

**Example response:** {"status": true}

* **Sync endpoint** →\
  <https://platform.indigo.ai/rest/trigger/sync/\\{{project\\_token\\}}>
  * Waits until the agent/workflow has completed execution.
  * Returns the generated response.
  * Use case: when immediate feedback is required (validation, content generation, forwarding to another system).<br>

**Example response:**\
{

"messages": \[

{"caption": false, "html\_text": "\<p class=\\"slate-p\\">text\</p>", "text": "text"},

{"caption": false, "html\_text": "\<p class=\\"slate-p\\">another text\</p>", "text": "another text"}

],

"status": true

}

### ⚙️ Webhook setup

To trigger an Indigo.ai agent or workflow from an external event, you can configure a webhook in your system.

#### Example: GitLab – Triggering an agent when a Merge Request is created

1. Open Settings → go to the Webhooks section.

Enter the Indigo endpoint: <https://platform.indigo.ai/rest/trigger/\\{{type\\}}/\\{{project\\_token\\}}>

2. Replace:
   1. {{project\_token}} → your Indigo project token.
   2. {{type}} → sync or async.
3. Add the authentication header:
   1. Name: Authorization
   2. Value: Bearer pat-{{personal\_access\_token}}
4. Select events → check Merge Request events (or Releases events, Deployment events, etc., depending on your needs).
5. Add a payload including:
   1. target → the label of the agent/workflow to be triggered (use the DB label, not the platform display name. Example: Merge Request → merge\_request).
   2. data → the information to pass into Indigo.ai, available in the platform as variables.<br>

**Example payload:**\
\
{

"target": "mr",

"data": {

"action": "{{object\_attributes.action}}",

"user": "{{user.name}}",

"project": "{{project.name}}",

"draft": {{object\_attributes.draft}},

"detailed\_merge\_status": "{{object\_attributes.detailed\_merge\_status}}"

}

}

6. No need to predefine these variables in the platform.
7. Save and test → verify that the event correctly triggers the target agent or workflow (e.g., by adding an API block or email block).<br>

### 🔄 Other integrations

Besides GitLab, many external platforms can trigger Indigo.ai agents:

* Zapier → trigger on new emails, tickets, or Google Calendar updates using Webhook by Zapier → POST.
* Calendars (Google, Outlook) → trigger when a meeting starts (via Zapier or Make).
* CRM & Help Desk (e.g., Zendesk, Hubspot) → trigger on ticket creation or updates.<br>

### 📊 Advanced: new variable types

To support more complex payloads, Indigo.ai introduces two new variable types:

* **List** → an ordered collection of values (integers, strings, lists, or maps).
  * Example: \[1, "two", \[3], {"value": 4}]
* **Map** → a set of key–value pairs, where values can be integers, strings, lists, or maps.
  * Example: {"key\_1": 1, "key\_2": "value"}<br>

ℹ️ These variables behave like any other in the platform and can be inspected in the debugger.\
For details, see the [Variables guide](/getting-started/workspace/variables.md#deep-dive-map-and-list-variables).

{% hint style="info" %}
API access is a **premium feature** and may require a license upgrade. [Contact our Customer Success team](/need-help/our-customer-success-team.md) to activate Non-Conversational Triggers in your workspace.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://guide.indigo.ai/integrating-with-our-platform-api/non-conversational-triggers.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
