---
title: "Démarrer une Automation depuis une séquence vocale"
description: "Envoyez un événement d'application depuis un appel pour démarrer une Automation sans attendre son exécution, et transmettez dans l'événement les données de l'appelant, de l'appel et du clavier."
canonical: "https://bird.com/fr-fr/documentation/guides/voice/sequences/automations"
---

# Démarrer une Automation depuis une séquence vocale

> **Avertissement :** les séquences vocales sont en préversion. Les étapes, les données d'entrée et le format de définition des séquences peuvent évoluer d'une manière qui rend inutilisables les séquences et les requêtes API existantes.

Utilisez **Send Automation Event** pour démarrer une Automation pendant que l'appel se poursuit. Par exemple, lorsqu'un appelant appuie sur 1 pour demander à être rappelé, envoyez son numéro à une Automation qui planifie le rappel. L'appel n'attend pas la fin de l'exécution de l'Automation.

Cette étape est en préversion. [Automations](/docs/guides/automations) est en accès anticipé, et les autorisations de votre espace de travail déterminent ce que vous pouvez configurer.

## Préparer l'automatisation

1. Créez une automatisation dont le déclencheur est **Event from your application**.
2. Renseignez **Event name**, par exemple `callback_requested`.
3. Définissez des **Event fields** pour les valeurs que l'appel enverra, par exemple des champs de type chaîne nommés `caller` et `digits`.
4. Publiez l'automatisation.

Dans l'automatisation, `trigger.data` correspond à l'enveloppe de l'événement et `trigger.data.data` aux données que vous avez mappées : le numéro de l'appelant se trouve donc dans `trigger.data.data.caller`. [Connecter votre application à une automatisation](/docs/guides/automations/application-events) décrit l'enveloppe, les noms d'événements, les champs d'événement et les exécutions.

## Ajouter l'étape

1. Ajoutez **Send Automation Event** sur le chemin qui doit démarrer l'automatisation, par exemple le choix au clavier pour un rappel.
2. Sous **Automation event**, choisissez l'automatisation, puis son événement. La liste affiche les événements que la version publiée de l'automatisation peut démarrer.
3. Sous **Data**, renseignez les champs de l'événement. Chaque champ peut contenir une valeur fixe, une valeur issue des données d'appel précédentes ou, pour les champs texte, un texte qui combine les deux. Si l'événement n'a aucun champ d'événement, ajoutez vos propres noms et valeurs.
4. Connectez les résultats **Success** et **Failure**.

Les données que vous mappez constituent l'intégralité des données de l'événement. Bird n'ajoute aucun champ : mappez donc chaque valeur que l'automatisation lit. Le numéro de l'appelant se trouve dans `execution.call.orig.address` et peut être absent, donc [protégez-le](/docs/guides/voice/sequences/data). L'ID de l'appel se trouve dans `execution.call.id`, et les chiffres saisis au clavier dans `steps.<gather step>.output.digits`. L'ID de la séquence n'est pas disponible dans les données d'appel ; saisissez-le comme valeur fixe lorsque l'automatisation en a besoin.

Pour choisir une automatisation, vous devez avoir l'autorisation de lire les Automations. Sans cette autorisation, saisissez vous-même l'ID de l'automatisation, le nom de l'événement et les données.

## Gérer les résultats

| Résultat | Signification et action suivante                                                                                                           |
| -------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| Success  | L'événement a été placé en file d'attente pour l'automatisation. Poursuivez l'appel.                                                       |
| Failure  | L’événement n’a pas pu être mis en file d’attente en quelques secondes. Poursuivez l’appel ou invitez l’appelant à essayer un autre moyen. |

Un échec non connecté termine l’exécution en échec. Connectez-le, même à la même étape que le succès, lorsque l’appel doit continuer quoi qu’il arrive.

Aucun des deux résultats n’indique ce que l’automatisation a fait. Une automatisation suspendue, non publiée ou supprimée, un nom d’événement qu’elle n’utilise pas, ou des données qui ne correspondent pas à ses champs d’événement mènent tout de même au succès. Consultez l’onglet **Runs** de l’automatisation pour savoir si une exécution a démarré.

## Vérifier avant de publier

Lors de la publication de la séquence, un avertissement s’affiche, sans bloquer la publication, lorsque l’automatisation choisie est introuvable, suspendue ou non publiée, ou lorsque sa version publiée ne peut pas démarrer d’exécution à partir de l’événement choisi. Une automatisation suspendue ou un événement utilisé uniquement par une règle d’attente ou d’annulation déclenche quand même l’avertissement, même si l’événement peut poursuivre ou annuler des exécutions existantes. Si vous ne pouvez pas lire les Automations, l’avertissement indique que l’étape n’a pas été vérifiée.

## Livraison

- L’étape ne s’exécute qu’une fois l’appel décroché. Un appel sans réponse ou abandonné n’envoie rien.
- L’événement parvient généralement à l’automatisation environ une seconde après l’étape.
- Chaque passage par l’étape envoie un événement, et ses livraisons répétées sont ignorées. La protection contre les doublons est limitée : concevez donc l’automatisation pour qu’elle tolère une rare répétition.
- Un [transfert](/docs/guides/voice/sequences/dial-and-transfer) qui revient à l’étape envoie un nouvel événement.
- Chaque événement est envoyé à la version publiée de l’automatisation, y compris lors des appels de test. Un appel de test est un véritable appel, et l’automatisation peut effectuer des actions réelles.
- L’[aperçu](/docs/guides/voice/sequences/preview) n’envoie aucun événement. Choisissez un exemple de succès ou d’échec pour l’étape.

## Utiliser la définition

Dans une définition de séquence, l'étape est un nœud `automation.send_event` :

```json
{
  "id": "notify",
  "type": "automation.send_event",
  "type_version": 1,
  "config": {},
  "input": {
    "automation_id": "atm_01jz8x3v4w5y6z7a8b9c0d1e2f",
    "event": "callback_requested",
    "data": {
      "caller": {
        "$expr": "execution.call.orig != null && has(execution.call.orig.address) ? execution.call.orig.address : ''"
      },
      "digits": { "$expr": "steps.menu.output.digits" }
    }
  },
  "connections": {
    "success": { "node_id": "confirm", "port": "input" },
    "failure": { "node_id": "confirm", "port": "input" }
  }
}
```

| Champ                 | Valeur                                                                                                                                                                                                                                                                 |
| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `config`              | `{}`.                                                                                                                                                                                                                                                                  |
| `input.automation_id` | Obligatoire. ID d'une automatisation de cet espace de travail.                                                                                                                                                                                                         |
| `input.event`         | Obligatoire. Nom de l'événement de l'automatisation : de 1 à 128 lettres, chiffres, points, traits de soulignement ou tirets.                                                                                                                                          |
| `input.data`          | Facultatif, valeur par défaut `{}`. Objet dont chaque valeur de premier niveau est liée avec `$expr` ou `$template`, ou un seul `$expr` pour l'objet entier. Les valeurs imbriquées plus profondément restent littérales. 16 Kio au maximum avec le reste de l'entrée. |
| Résultats             | `success` et `failure`, chacun avec la sortie `{}`. Un résultat `failure` non connecté fait échouer l'exécution.                                                                                                                                                       |

## Étapes suivantes

- [Utilisez les données d'appel](/docs/guides/voice/sequences/data) dans le mappage.
- [Configurez des menus de clavier](/docs/guides/voice/sequences/media-and-keypad) pour les choix au clavier.
- [Connectez votre application à une automatisation](/docs/guides/automations/application-events).

## Related resources

- [Voice sequences](/docs/guides/voice/sequence-builder) (docs)
