# Workflows

{% hint style="success" icon="list-check" %}
**IN BRIEF**

Workflows are at the heart of orchestrating your customer interactions in Fullwhere.

They allow you to define automation logic, such as:

* define automatic alerts
* automatically assign interactions to users
* generate AI responses
* manage the sending of automatic responses.
  {% endhint %}

{% hint style="info" icon="lightbulb" %}
Fullwhere workflows rely on a visual engine that allows you to freely arrange Condition-type and Action-type nodes.

This great flexibility allows you to reproduce your internal logic in Fullwhere workflows to best personalize the management of your customer interactions.
{% endhint %}

{% hint style="info" icon="shield-check" %}
**ACCESS RIGHTS**

To modify the Workflows in your Fullwhere space, you must be a supervisor member with Administrator rights.
{% endhint %}

Go to Automations > [Workflows](https://app.fullwhere.com/automation/workflows) in the main navigation bar on the left side of your screen.

## Your Workflows <a href="#h_9997e105e2" id="h_9997e105e2"></a>

The Workflows in your Fullwhere space are displayed in the Workflows table.\
You can easily find a workflow using the text search bar or the filters *Status* and *Created by*.

The Workflows table displays the following information in columns:

<table><thead><tr><th width="264.765625">Name</th><th>Description</th></tr></thead><tbody><tr><td>Name</td><td>Name assigned to your workflow</td></tr><tr><td>Status</td><td>Active / Inactive</td></tr><tr><td>Created by</td><td>User of your account who created the workflow</td></tr><tr><td>Creation date</td><td>Creation date of your workflow</td></tr><tr><td>Modification date</td><td>Date of the last modification made to your Workflow</td></tr></tbody></table>

To create a Workflow, click the "Create a workflow" button at the top right of your screen.\
To edit an existing Workflow, click the row corresponding to your Workflow in the table.\
To delete a workflow, click the three small dots at the end of the row in the workflows table and click Delete.

## The trigger

When you create a Workflow, the first step is to configure its trigger.\
The trigger lets you set conditions that will define the interactions that trigger this workflow, and therefore for which the various actions in your workflow can be executed.

To define your trigger, click the blue card "Trigger - Incoming interaction".

In the panel that opens on the right, you can add a Note to your trigger; it will be visible on your workflow graph. Adding a Note can be useful to indicate to your teams the conditions defined in your trigger.

Once your trigger is defined, you can configure the next steps of your Workflow by setting up Nodes.\
Click the ⊕ button at the output of your trigger to define the next step, which can be:&#x20;

* a logical condition
* an AI condition
* an action.

## Logical conditions

Logical conditions are Condition-type Nodes that allow you to route your customer interactions according to specific fields and values, for example by using the Rating, the Text, or the keywords of your customer interaction.

[Access the list of available logical conditions.](#liste-des-conditions-logiques)

Once you have added a logical condition Node to your Workflow, click it to configure the Node's conditions.

In the panel that opens on the right, you can add a Note to your condition node; it will be visible on your workflow graph, allowing you to easily identify your condition node.

Using the condition add buttons, you can configure the conditions and groups of conditions that define your Node.

When a customer interaction passes through a conditions Node, the conditions are checked and the output value is either "<mark style="color:$warning;">`True`</mark>" or "<mark style="color:$warning;">`False`</mark>".

On your logical condition Node, click the "**⊕ True**" button to define the next steps (condition or action) of your workflow for customer interactions for which your conditions are true/validated.\
On your logical condition Node, click the "**⊕ False**" button to define the next steps of your workflow for customer interactions for which your conditions are false/invalidated.

## AI conditions

AI conditions are condition Nodes that allow you to route your customer interactions based on scenarios expressed in natural language.

Once you have added an AI condition Node to your Workflow, click it to configure it.

In the panel that opens on the right, you can add a Note to your AI condition node; it will be visible on your workflow graph, allowing you to easily identify your condition node.

In the "Prompt" section, define in natural language the scenario that the AI should check.

When a customer interaction passes through an AI conditions Node, it will be compared to your Prompt using an LLM. If the LLM determines that your customer interaction matches your Prompt, it will return the value "<mark style="color:$warning;">`True`</mark>", otherwise the value "<mark style="color:$warning;">`False`</mark>".

On your AI condition Node, click the "**⊕ True**" button to define the next steps (condition or action) of your workflow for customer interactions for which your AI condition is true/validated.\
On your AI condition Node, click the "**⊕ False**" button to define the next steps of your workflow for customer interactions for which your AI condition is false/invalidated.

## Actions

Following your trigger, a logical conditions Node, or an AI conditions Node, you can add one or more action Nodes.

At the output of your Trigger, click the "⊕" button then "Action".\
At the output of a conditions Node, click the "⊕ True" or "⊕ False" button then "Action".

These Nodes define actions that will automatically be applied to the customer interactions for which they are executed.\
Actions can be of different types and can each be configured according to your needs.

Once you have added an action Node to your Workflow, click it to configure it.

In the panel that opens on the right, you can add a Note to your AI condition node; it will be visible on your workflow graph, allowing you to easily identify your action node.

Then select the type of action you want to configure:&#x20;

### Notify users

The "Notify users" action allows you to send an email notification to users of your choice.

{% stepper %}
{% step %}

#### Recipients panel

The recipients panel allows you to configure the users who should be notified by your action Node.

Click on "Add recipients", then search for and select the users to add.

You can also notify users based on the Area (Brand, Location, Location Group) concerned by the customer interaction.

To define specific users for your brands, click on "**Brands +**".

You can "**Choose brands**" to add brands to your action Node and define the recipients to notify for that brand.\
You can also use the "**Prefill from settings**" option. In this case, we will create the notification logic for you based on your brands and the users who have rights on your brands.

You can perform this operation for **Locations** and **Location Groups.**
{% endstep %}

{% step %}

#### Notifications panel

In the Notifications panel, you can select the channels to use for sending notifications: Email and WhatsApp.

Email:&#x20;

* the email subject
* a possible custom Message (optional) for the recipients, which will be displayed in the header of the received email.

WhatsApp: \
WhatsApp notifications can be sent to selected users who have WhatsApp and who have saved their phone number on their [Fullwhere account](/documentation/documentation-en/get-started/set-up-your-account.md#h_383effe7cc).

{% hint style="info" %}
WhatsApp sends are subject to additional billing. Please contact your account manager for more information.
{% endhint %}
{% endstep %}
{% endstepper %}

### Assign users

The "Assign users" action allows you to assign a customer interaction to users of your choice.

{% hint style="info" %}
Assignment determines the users for whom a customer interaction will be present in the main view "[My Inbox](/documentation/documentation-en/inbox/navigate-the-inbox.md#mon-inbox)".
{% endhint %}

Click on "Add users", then search for and select the users to add.

You can also assign users based on the Area (Brand, Location, Location Group) concerned by the customer interaction.

To define specific users for your brands, click on "**Brands +**".

You can "**Choose brands**" to add brands to your action Node and define the users to assign for that brand.\
You can also use the "**Prefill from settings**". In this case, we will create the assignment logic for you based on your brands and the users who have rights on your brands.

You can perform this operation for **Locations** and **Location Groups.**

### Generate an AI response

This action allows you to generate a response using an [AI agent](/documentation/documentation-en/automations/ai-agents.md) previously configured on your account.

#### General settings

{% stepper %}
{% step %}

#### Associate an AI agent

Select the[AI agent](/documentation/documentation-en/automations/ai-agents.md) that your action will use to generate a response. Your agent must have been configured beforehand.
{% endstep %}

{% step %}

#### Response channel

This setting allows you to select the [channel](/documentation/documentation-en/inbox/handle-a-customer-interaction.md#h_817c292fa7) on which you want to reply to your customer.

**Customer channel:** the response channel will correspond to the [default response channel](/documentation/documentation-en/inbox/handle-a-customer-interaction.md#le-canal-de-reponse) of the interaction\
**Email:** your response draft will be generated to be sent by email. You can then specify advanced settings specific to the Email channel.\
**SMS:** your response draft will be generated to be sent by SMS. You can then specify advanced settings specific to the SMS channel.
{% endstep %}

{% step %}

#### Automatic sending of the response

**Yes** : your response draft will be sent automatically.\
You can then define the sending settings: \
\- the sending delay\
\- the days of the week when responses must be sent\
\- the time slot during which responses can be sent.

**No** : your response draft will simply be generated but will not be sent automatically.
{% endstep %}

{% step %}

#### Advanced settings

**Additional instructions for your AI agent**\
This field allows you to specify additional instructions for your AI agent, which will only be taken into account by this response generation action. This setting can allow you to specialize your AI agent according to your different scenarios. You can use [variables](/documentation/documentation-en/automations/ai-agents.md#h_3198d4840a) to dynamically specify context to your AI agent.

**Provide your AI agent with the interaction history**\
By enabling this setting, your AI agent will be able to use the entire conversation to generate the response, and not just the last message received. This setting is enabled by default.\
It is recommended to enable this setting for conversation-type interactions (email, private messages...).

**If you have defined the response channel as Email, you can configure specific advanced settings:**&#x20;

* Sending email address: allows you to define the email address of your account that will be used to send the response
* Email sender: allows you to configure the sender name of your email, which will be displayed in the recipient's mailbox. You can use variables to use a dynamic Sender depending on your brands or locations.
* Additional recipients: you can specify recipients (To or CC) who will be added to the email thread

**If you have defined the response channel as SMS, you can configure specific advanced settings:**&#x20;

* SMS sender: the name displayed when the SMS is received by the recipient
* Additional recipients: you can specify recipients who will also receive the SMS.
  {% endstep %}
  {% endstepper %}

#### Language settings

The **Language** tab of the Generate an AI response action allows you to control the language in which the response will be generated. You can define a priority order between several language sources so that Fullwhere automatically determines the most appropriate language.

Four sources can be used:

* **Customer language** : the language associated with the customer profile.
* **Interaction language** : the language detected in the received message.
* **Location language** : the default language of the location linked to the interaction
* **Brand language** : the default language of the brand linked to the interaction

These options can be prioritized. For example, you can choose to reply first in the language of the received message, and if it is not detected, use the customer's language.

You can also define a default language. This language will serve as a fallback if none of the configured languages (customer language, interaction language, location language, or brand language) is available or detected.

If only a default language is defined in the action, then all generated responses will automatically be produced in that language.

### Create a manual response

The response creation action allows you to create a response draft using a fixed response template.

This action can be used if you always want to respond with the same reply for a specific scenario.

{% stepper %}
{% step %}

#### Text of your response

Indicate the text that will be used to create your response draft.\
You can use **variables** to make your response template dynamic.
{% endstep %}

{% step %}

### Response language

Indicate the language in which your response is written.
{% endstep %}

{% step %}

#### Response channel

This setting allows you to select the channel on which you want to reply to your customer.

**Customer channel:** the response channel will correspond to the [default response channel](/documentation/documentation-en/inbox/handle-a-customer-interaction.md#le-canal-de-reponse) of the interaction\
**Email:** your response draft will be generated to be sent by email. You can then specify advanced settings specific to the Email channel.\
**SMS:** your response draft will be generated to be sent by SMS. You can then specify advanced settings specific to the SMS channel.
{% endstep %}

{% step %}

#### Automatic sending of the response

**Yes** : your response draft will be sent automatically.\
You can then define the sending settings: \
\- the sending delay\
\- the days of the week when responses must be sent\
\- the time slot during which responses can be sent.

**No** : your response draft will simply be generated but will not be sent automatically.
{% endstep %}
{% endstepper %}

### Switch to manual mode

This action allows you to switch the mode of an interaction to *<mark style="color:orange;">`Human`</mark>*, which means that automatic response sending will not be allowed for this customer interaction.

From the moment this action is executed for a customer interaction, no response can be sent automatically anymore for this customer interaction.

To reactivate automatic response sending for a customer interaction, see Inbox.

Setting up this action may be useful to delegate the handling of certain customer interactions to your teams.

For more information on how an interaction's Mode works, see this [dedicated section](/documentation/documentation-en/inbox/handle-a-customer-interaction.md#modifier-le-mode-dune-interaction).

### Set attributes

The [attributes](/documentation/documentation-en/automations/attributes.md) are custom fields that you can add to your Fullwhere workspace.

The Set attributes action allows you to automatically define the value of some of your attributes directly from a workflow.

{% hint style="warning" %}
If you configure via a workflow the value for an attribute for which AI detection is enabled, the values assigned by your workflow will overwrite any potential values found by AI
{% endhint %}

{% stepper %}
{% step %}

#### Select the attributes

In the Attributes to set dropdown menu, select the attributes for which your action must assign values.
{% endstep %}

{% step %}

#### Configure values

For each selected attribute, you must select or enter the value or values to assign to your interaction.

For Multiple selection type attributes, indicate whether or not you want to Overwrite values already present.\
If, at the time of analysis, a customer interaction already has values for a given attribute, two behaviors are possible:&#x20;

* Overwrite values already present: values already assigned by a workflow or a user will be replaced by those defined in your action
* Do not Overwrite values already present: the values defined in your action will be added to those already assigned by a workflow or a user.
  {% endstep %}
  {% endstepper %}

### Archive the interaction

This action allows you to automatically archive a customer interaction.\
Once archived, a customer interaction will no longer be visible in your Fullwhere Inbox.\
Archived interactions can be viewed in the "Archived" view.

### Set the interaction status

This action allows you to define the status of your interaction once processed by your workflow.

The status of your interaction can be set to <mark style="color:orange;">Pending</mark>, <mark style="color:$success;">Processed</mark>, or <mark style="color:$info;">Ignored</mark>.

**Use cases:**

* <mark style="color:$success;">Processed</mark> : for example, this can be useful when, despite a customer reply, you consider that the interaction is finished
* <mark style="color:orange;">Pending</mark> : can allow you to keep your customer interaction in Pending status even if a response is sent automatically.
* <mark style="color:$info;">Ignored</mark> : allows you not to respond to a customer interaction. Unlike the Processed status, this status does not affect your processing statistics.

{% hint style="info" %}
If your workflow includes an action for generating or creating a response with automatic sending, the interaction status automatically changes to Processed when the response is sent. For it to remain Pending, you must add an action explicitly setting this status.
{% endhint %}

### Add a delay to an action

Adding a delay to your action allows you to postpone its execution into the future.

To configure a delay, click the action to modify, then at the top right click the 3 small dots and in the dropdown menu click on **Add a delay**.

* **Action delay:** determines the delay after which an action must be executed
* **Days:** the action will only execute on the selected days. If the workflow is triggered on a non-selected day, execution of the action will be postponed until the next valid day.
* **Trigger time slot:** the action will only execute within the defined time slot. If the workflow is triggered outside this time, execution of the action will be postponed until the next valid time slot.

When an action has a delay, it bears the indicator <i class="fa-bolt-lightning" style="color:$info;">:bolt-lightning:</i>.

To modify an action delay, click the indicator <i class="fa-bolt-lightning" style="color:$info;">:bolt-lightning:</i> at the top right of the action configuration panel.

To remove a delay, click Remove delay in the delay configuration panel.

{% hint style="info" icon="lightbulb" %}
Use cases

An action delay may for example be necessary if you want to keep your customer interaction in the "Pending" status after sending an automatic response.

To do this, add a response generation action and a status definition action to your Workflow.

Then define a delay of a few minutes on your status definition action.
{% endhint %}

## List of logical conditions

### Conditions relating to the interaction

<table><thead><tr><th width="232.09375">Name</th><th>Description</th></tr></thead><tbody><tr><td><code>Source</code></td><td>Initial source of the customer interaction</td></tr><tr><td><code>Message channel</code></td><td>Source of the new incoming message within a conversation</td></tr><tr><td><code>Rating</code></td><td>Rating out of 5 (for reviews and satisfaction surveys)</td></tr><tr><td><code>Text content</code></td><td>Text content</td></tr><tr><td><code>Sentiment</code></td><td>Sentiment detected in the text</td></tr><tr><td><code>Themes</code></td><td>Themes detected in the text</td></tr><tr><td><code>Emotions</code></td><td>Emotions detected in the text</td></tr><tr><td><code>Text size</code></td><td>Text length in number of characters</td></tr><tr><td><code>Categories</code></td><td>Categories detected according to your <a href="/pages/cd69655c45fe82f6a2c5fc748c4944e1d73c687d">keywords</a></td></tr><tr><td><code>Brand</code></td><td>Brand of the customer interaction or of the interaction's location</td></tr><tr><td><code>Location</code></td><td>Location of the customer interaction (if present)</td></tr><tr><td><code>Location group</code></td><td>Location groups of the interaction's location (if present)</td></tr><tr><td><code>Contact address</code></td><td>Email address that received the incoming email</td></tr><tr><td><code>Language</code></td><td>Language detected in the text</td></tr><tr><td><code>Form</code></td><td><a href="#formulaire-de-contact-conditions-avancees">Advanced conditions</a> on contact forms.</td></tr><tr><td><code>Survey</code></td><td><a href="#enquete-conditions-avancees">Advanced conditions</a> on satisfaction surveys</td></tr><tr><td><code>Sevenrooms</code></td><td>Allows the use of subfields specific to this provider</td></tr><tr><td><code>Zenchef</code></td><td>Allows the use of subfields specific to this provider</td></tr><tr><td><code>Sunday</code></td><td>Allows the use of subfields specific to this provider</td></tr><tr><td><code>Booking</code></td><td>Allows the use of subfields specific to this provider</td></tr><tr><td><code>Message attributes</code></td><td>Allows conditions to be triggered on <a href="/pages/36d517810ab0c74ddc63eca5d7b568af99278d79">custom attributes</a>.</td></tr></tbody></table>

#### Contact form - Advanced conditions

<table><thead><tr><th width="228.8671875">Name</th><th>Description</th></tr></thead><tbody><tr><td><code>Form name</code></td><td><a href="/pages/e473ad083b47e34ada322016a7c7c480b1a03082">Form</a> of the contact form that received the interaction</td></tr><tr><td><code>Response</code></td><td>Allows filtering on the responses given to the different form questions*.</td></tr><tr><td><code>Enabled</code></td><td>Online / Offline status of the form</td></tr></tbody></table>

{% hint style="info" icon="circle-info" %}
\*When you use the advanced "Response" condition for Contact Forms, you are prompted to select the form field and the possible values for which you want your condition to be evaluated.

If within your Fullwhere space you have several forms with fields having the same name, your condition may be validated regardless of the form submitted by the customer, as long as it contains a field with that name. If you want to target a specific form, add a "Form name" condition.

Also, the values offered for the condition come from all fields with the same name across all your Fullwhere forms. Thus, for example, if several forms contain a field "Order type", the list displays the possible values coming from all forms combined.
{% endhint %}

#### Survey - Advanced conditions

<table><thead><tr><th width="228.8671875">Name</th><th>Description</th></tr></thead><tbody><tr><td><code>Survey name</code></td><td><a href="/pages/6462d3dee8be832e32b8eb8a5b32489a1c096403">Survey</a> of the contact form that received the interaction</td></tr><tr><td><code>Response</code></td><td>Allows filtering on the responses given to the different survey questions*.</td></tr><tr><td><code>Enabled</code></td><td>Online / Offline status of the survey</td></tr><tr><td><code>Public access</code></td><td>Public or private survey</td></tr><tr><td><code>Solicitation channel</code></td><td>Survey collected by Email, SMS or WhatsApp</td></tr></tbody></table>

{% hint style="info" %}
\*When you use the advanced "Response" condition for Surveys, you are prompted to select the survey field and the possible values for which you want your condition to be evaluated.

If within your Fullwhere space you have several surveys with fields having the same name, your condition may be validated regardless of the survey completed by the customer, as long as it contains a field with that name. If you want to target a specific survey, add a "Survey name" condition.

Also, the values offered for the condition come from all fields with the same name across all your Fullwhere surveys. Thus, for example, if several surveys contain a field "Order type", the list displays the possible values coming from all surveys combined.
{% endhint %}

### Conditions relating to the customer linked to the interaction

<table><thead><tr><th width="232.09375">Name</th><th>Description</th></tr></thead><tbody><tr><td><code>Phone</code></td><td>Customer phone number</td></tr><tr><td><code>Email</code></td><td>Customer email</td></tr><tr><td><code>Customer tag</code></td><td>Tags assigned to the customer</td></tr><tr><td><code>Description</code></td><td>Customer description</td></tr><tr><td><code>Zenchef</code></td><td>Allows the use of subfields specific to this provider</td></tr><tr><td><code>Zelty</code></td><td>Allows the use of subfields specific to this provider</td></tr><tr><td><code>Customer attributes</code></td><td>Allows conditions to be triggered on <a href="/pages/36d517810ab0c74ddc63eca5d7b568af99278d79">custom attributes</a>.</td></tr></tbody></table>

### Conditions relating to the transaction linked to the interaction

<table><thead><tr><th width="266.0703125">Name</th><th>Description</th></tr></thead><tbody><tr><td><code>Origin</code></td><td>Source of the transaction</td></tr><tr><td><code>Amount</code></td><td>Transaction amount</td></tr><tr><td><code>Sevenrooms - Order</code></td><td>Allows the use of subfields specific to this provider</td></tr><tr><td><code>Zenchef - Order</code></td><td>Allows the use of subfields specific to this provider</td></tr><tr><td><code>Zelty - Order</code></td><td>Allows the use of subfields specific to this provider</td></tr><tr><td><code>Juxta - Order</code></td><td>Allows the use of subfields specific to this provider</td></tr><tr><td><code>Transaction attributes</code></td><td>Allows conditions to be triggered on <a href="/pages/36d517810ab0c74ddc63eca5d7b568af99278d79">custom attributes</a>.</td></tr></tbody></table>


---

# 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://docs.fullwhere.com/documentation/documentation-en/automations/workflows.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.
