Passer au contenu principal
PUT
Save call flow draft
Scope requis : PHONE_NUMBERS_WRITE

Comportement

Crée ou met à jour le brouillon de travail du flux d’appel d’un numéro. Le brouillon est validé de manière souple et n’affecte pas le routage en direct tant qu’il n’est pas publié. Le paramètre de chemin {number} est le numéro Allo au format E.164. Envoyez le document definition complet ainsi que la schema_version à laquelle il se conforme.

Sous-ensemble du moteur

engine_subset détermine quelle part de votre flux s’exécute sur les appels réels. Envoyez "engine_subset": "FULL_FLOW" pour tout flux que vous construisez via l’API. Si vous omettez engine_subset, Allo le déduit des nœuds. Un flux qui contient un nœud horaires d’ouverture, propriété de contact, indicatif pays ou envoi de SMS est FULL_FLOW. Tout autre flux est déduit en NESTED_IVR, même s’il contient des sous-menus, des sonneries et une réceptionniste IA : seul son menu racine s’exécuterait alors. Une fois que le flux d’une ligne est FULL_FLOW, un brouillon ultérieur ne peut pas le rétrograder en NESTED_IVR : la requête conserve FULL_FLOW.

Mise en ligne

Enregistrer un brouillon ne modifie jamais le routage en direct. Deux façons de le mettre en ligne :
  • Le publier vous-même avec Publier le flux d’appel, en passant la lock_version de cette réponse. Le routage des appels entrants en direct change immédiatement.
  • Le confier à une personne via la confirmation_url de cette réponse : un lien où un utilisateur connecté ouvre ce brouillon, le vérifie et le publie. Préférez cette option lorsqu’un humain doit approuver la modification.
Traitez la confirmation_url comme opaque : renvoyez-la telle quelle, ne la reconstruisez jamais à partir d’un hôte d’application codé en dur et ne l’analysez pas. (Elle n’est présente que lorsque le status de la réponse est DRAFT.)

Concurrence

  • lock_version : passez la valeur du brouillon que vous avez lu. Omettez-la (ou envoyez null) pour mettre à jour le brouillon sans contrôle de concurrence. Une valeur périmée renvoie 409 CALL_FLOW_STALE_LOCK.
  • base_published_version : la version publiée sur laquelle repose votre modification. Lisez-la dans le champ version de Récupérer le flux d’appel quand son status vaut PUBLISHED. L’omettre signifie « aucune version publiée » : sur une ligne qui a déjà un flux publié, la requête renvoie 409 CALL_FLOW_CONCURRENT_EDIT. La même erreur est renvoyée si quelqu’un a publié une nouvelle version pendant votre édition.

Erreurs

  • 400 CALL_FLOW_SCHEMA_VERSION_MISMATCH : schema_version ne correspond pas à la version actuelle du serveur.
  • 400 CALL_FLOW_INVALID : le definition est mal formé ou a échoué à la validation.
  • 404 PHONE_NUMBER_NOT_FOUND : le numéro ne fait pas partie des numéros de votre compte.
  • 409 CALL_FLOW_STALE_LOCK / 409 CALL_FLOW_CONCURRENT_EDIT : voir Concurrence ci-dessus.

Autorisations

Authorization
string
header
requis

Paramètres de chemin

number
string
requis

Allo phone number in E.164 format

Exemple:

"+14155551234"

Corps

application/json
definition
object
requis

The call flow tree document (opaque; camelCase keys).

schema_version
integer
requis

Must match the server's current call flow schema version.

Exemple:

1

lock_version
integer | null

The lock_version of the draft you are updating; omit or null to upsert without a concurrency check.

base_published_version
integer | null

The published version your edit is based on; a mismatch means someone published mid-edit (409).

engine_subset
enum<string> | null

FULL_FLOW runs the whole tree on live calls. NESTED_IVR runs only the root phone menu: its keys that lead to a nested menu, a condition or a voicemail node do nothing. Send FULL_FLOW for flows you build through the API. When omitted, it is inferred from the nodes: FULL_FLOW only if the flow has a business-hours, contact-property, country-code or send-SMS node, otherwise NESTED_IVR. A line whose flow is already FULL_FLOW keeps it.

Options disponibles:
NESTED_IVR,
FULL_FLOW

Réponse

The saved draft

data
object

A version of a phone number's call flow.