Les versions
Rien de ce que vous tapez n’atteint un appelant avant la publication.
Modifier un flux qui répond déjà à votre téléphone n’écrit pas par-dessus. Ça crée un brouillon à part, et le numéro continue de répondre avec la version que vous avez publiée jusqu’à ce que vous publiiez de nouveau. L’éditeur est donc un endroit où réfléchir tout haut un mardi matin, sans que ce soit une modification en direct de votre système téléphonique.
Un appel garde la version sur laquelle il a commencé. Publiez une modification pendant que quelqu’un est au milieu de votre menu : cette personne termine sur la version avec laquelle elle a commencé, et c’est le prochain appelant qui reçoit la nouvelle. Ce lien tient aussi à l’intérieur d’un sous-flux, là où le graphe parcouru n’est pas celui par lequel l’appel est entré.
La raison n’est pas le rangement. Un appel arrêté à un menu tient l’identifiant du bloc où il s’est arrêté : réécrire le graphe en dessous ferait reprendre cette personne à un bloc qui n’existe plus (du silence, ou une coupure, sur un appel qui allait bien).
Chaque version est conservée, avec qui l’a publiée et à quel moment. Restaurer une version plus ancienne la recopie vers l’avant dans un nouveau brouillon plutôt que de rembobiner, pour que l’historique reste le registre de ce que les appelants ont réellement entendu, parce que c’est la forme que prend la question quand quelque chose a mal tourné : qu’est-ce que les gens ont entendu mardi après-midi ?
Suivre un appel depuis la première sonnerieLes blocs
28 blocs, en six groupes.
Ils sont classés dans l’ordre où on les cherche : contrôle du flux, communiquer, saisir une entrée, acheminer, logique, et ceux qui sortent à l’extérieur. La plupart des flux qui fonctionnent en utilisent six ou sept. Huit d’entre eux, et ce que chacun décide, sont ci-dessous.
Un appel téléphonique nous arrive comme une suite de requêtes distinctes plutôt que comme un long programme : un flux est donc parcouru plutôt qu’exécuté. L’interpréteur avance de bloc en bloc jusqu’à en atteindre un qui a besoin de l’appelant, note où il s’est arrêté, et repart de là quand la personne répond. Les blocs qui n’ont besoin de rien (une condition, une recherche, la vérification des heures) se font au passage, dans le même souffle, pour que l’appelant ne les attende pas.
Trois plafonds pèsent sur ce parcours, et chacun est là parce que l’alternative, c’est la facture de téléphone de quelqu’un. Une requête trop longue est abandonnée par le réseau, ce qui, pour l’appelant, est un appel coupé : une longue série de traitements est donc scindée en une deuxième requête plutôt que risquée. Il y a une limite au nombre de blocs qu’une même requête peut exécuter. Et un bloc de répétition ne peut pas être publié sans un nombre de tours maximal, parce qu’un cycle sans plafond ne relâche jamais l’appelant.
Les blocs se posent sur le canevas au clic autant qu’au glisser-déposer. Le glisser-déposer est inatteignable au clavier, et un éditeur qui exige une souris est un éditeur que certains de vos collègues ne peuvent pas ouvrir.
Huit des 28
Business hours
Quatre sorties à partir d’un seul horaire enregistré : ouvert, jour férié, urgence, fermé. S’exécute avant que quiconque ait pu être sollicité pour répondre.
Collect digits / Menu
Autant de touches que l’arbre en demande, et deux sorties que vous n’avez pas choisies : aucune saisie, et mauvaise touche. Les deux se câblent comme les autres.
Transfer to queue
Nomme une file et une priorité. Deux sorties : l’appel est connecté, ou personne ne l’a pris avant l’expiration du délai.
Voicemail
Enregistre jusqu’à la durée que vous fixez et transcrit, à moins que vous désactiviez la transcription. Une boîte sans message d’accueil prend quand même le message.
Play message
Un texte dit par la voix de votre choix, ou un enregistrement que vous avez téléversé. Le même interrupteur se trouve sur chaque bloc qui parle.
Hold music
Votre fichier audio ou celui par défaut. Flux d’attente seulement, et la boucle repart du début aussi longtemps que quelqu’un patiente.
Announce wait time
Dit à peu près combien de temps, d’après les chiffres de la file elle-même. S’il n’y a pas encore d’estimation utilisable, le bloc ne dit rien plutôt que de deviner : les gens calibrent leur patience sur ce chiffre.
Offer a callback
Une touche à appuyer pour raccrocher et être rappelé. La deuxième sortie, c’est la personne qui préfère continuer d’attendre.
Deux exécuteurs
Ce qu’une personne entend en attendant s’exécute ailleurs.
Un flux qui répond à un numéro et un flux qui joue pendant que quelqu’un patiente sont deux choses différentes, et on les garde comme deux choses. Celui de l’attente ne se parcourt pas et ne reprend pas où il était : c’est un document que le réseau nous redemande, depuis le début, aussi longtemps que la personne reste en attente. La seule chose qui passe d’une reprise à l’autre, c’est le temps qu’elle a déjà attendu.
Dans ce document, le réseau accepte une courte liste d’instructions et laisse tomber le reste sans rien dire. Un transfert déposé là n’échoue pas : il ne se produit tout simplement jamais, et aucune erreur nulle part ne vient vous l’apprendre. La palette offre donc un ensemble de blocs différent selon le genre de flux ouvert, et la publication refuse un bloc que le genre du flux ne peut pas exécuter. Ce refus est une erreur et non un avertissement, justement parce que rien d’autre ne le signalerait jamais, sauf un client déconcerté.
Le troisième genre ne répond à aucun numéro. On y entre depuis le bloc de sous-flux d’un autre flux et on en revient, de sorte qu’un accueil bilingue ou une étape de vérification s’écrit une fois et sert à cinq flux au lieu d’être recopié cinq fois. L’imbrication s’arrête à cinq niveaux, et ce n’est pas un réglage : un flux qui peut entrer dans lui-même est une boucle avec une facture à la minute au bout, et l’appelant entend le même menu tout le temps qu’elle dure.
Là où la file prend le relaisLes heures
C’est à l’intérieur du flux qu’on décide si vous êtes ouvert.
Un bloc d’heures d’ouverture lit l’un de vos horaires enregistrés, dans le fuseau de cet horaire, et se ramifie de quatre façons : ouvert, jour férié, urgence, fermé. Il s’exécute avant qu’il existe une tâche à offrir à qui que ce soit, et c’est tout l’intérêt de cet ordre. Une personne qui appelle à neuf heures du soir devrait entendre votre message de fermeture tout de suite, pas patienter dans une file que personne ne surveille jusqu’à ce qu’elle abandonne.
Les sorties jour férié et urgence ont été ajoutées à un bloc contre lequel des flux étaient déjà publiés. Comme ces graphes sont figés et n’étaient câblés que pour deux sorties, les deux nouvelles déclarent un repli vers fermé : sans ça, le premier jour férié après la modification aurait raccroché au nez des appelants que ces flux envoyaient jusque-là au message de fermeture. La sortie ouvert ne déclare aucun repli, volontairement : envoyer un nous sommes ouverts dans la branche fermé lirait le mauvais message à quelqu’un que le bloc venait justement de laisser passer.
Les horaires sont partagés : un jour férié ajouté une fois s’applique dans tous les flux qui s’en servent, et le mode urgence aussi. Cet interrupteur n’attend pas une publication, parce que l’après-midi où vous en avez besoin est justement celui où vous ne pouvez pas vous permettre de retoucher un arbre téléphonique.
Et la moitié honnête : les heures vivent sur un horaire et nulle part ailleurs. Il n’y a pas d’interrupteur distinct pour toute l’organisation, alors un numéro qui n’est lié à aucun flux sonne jour et nuit, et c’est voulu. La vérification des heures penche aussi du côté ouvert dès qu’il manque quelque chose. Fermer une ligne téléphonique, ça se demande ; ce n’est pas quelque chose qu’on vous fait parce qu’un champ était vide.
Vers l’extérieur
Un flux peut appeler à l’extérieur, vers les hôtes que vous avez nommés.
Un bloc HTTP envoie une requête à un de vos systèmes et verse la réponse dans le reste du flux, pour que le bloc suivant puisse la dire, s’y ramifier ou la transmettre. Un deuxième bloc cherche plutôt à l’intérieur de Ringfully (un contact, un agent, un appel passé) sans réseau au milieu. Les deux se produisent pendant que la personne est en ligne, et c’est la contrainte d’où découle tout ce qui suit.
Un bloc comme celui-là, c’est votre configuration qui fait faire une requête à nos serveurs : il est donc clôturé. Ce doit être du https, et le nom d’hôte doit figurer sur la liste de votre propre organisation. Cette liste est vide au départ. Y ajouter un hôte est une décision d’administration dans les réglages (pas quelque chose que la personne qui modifie un flux peut faire en tapant une nouvelle adresse dans un bloc), et les entrées sont des noms d’hôte exacts, parce qu’un caractère générique rouvrirait le trou que la liste sert à fermer.
La vérification se fait à l’intérieur de la résolution du nom plutôt qu’avant, de sorte que l’adresse approuvée est par construction l’adresse à laquelle on se connecte. Une redirection refait toute la vérification depuis le début. Et la requête est bornée (cinq secondes, un quart de mégaoctet, trois sauts) parce qu’une personne tient un téléphone contre son oreille pendant que ça se passe.
Comment le reste est séparéLa publication
Ce que la publication refuse, et ce qu’elle se contente de signaler.
Refusé net : un flux sans début, ou avec deux. Un réglage obligatoire laissé vide, ou un choix qui n’est plus une option (la file que quelqu’un a supprimée le mois dernier). Un bloc que ce genre de flux ne peut pas exécuter. Une répétition sans limite. Une adresse qui n’est pas en https. Chaque refus nomme le bloc sur le canevas, pour que le message soit quelque part où agir plutôt qu’une liste de plaintes.
Un seul refus ne se négocie dans aucun sens : un flux ne peut jamais être réglé pour composer un numéro d’urgence, et pas davantage les numéros qui y ressemblent. 1911 et 9911, c’est quelqu’un qui tend vers les trois mêmes chiffres. Une personne arrivée là par un menu automatisé ne donnerait au répartiteur ni adresse ni interlocuteur.
Signalé sans être bloqué : une sortie à laquelle rien n’est branché. Ça veut habituellement dire et ensuite on raccroche, et en faire une erreur empêcherait de publier des flux parfaitement ordinaires. L’avertissement dit donc lequel des deux cas s’applique (l’appel se termine là, ou il suit plutôt la sortie de repli) et vous laisse décider.
Un flux qui répond encore à un numéro ne peut pas être supprimé. Il vous dit lesquels et vous demande de les pointer ailleurs d’abord, parce que reconvertir ces lignes en douce changerait la destination de vos appels sans que personne le voie passer.
6 façons de partir
Greeting, then your team
Un court message d’accueil, puis chaque appelant vers une file. Le flux le plus simple qui fonctionne.
Open and closed hours
Votre équipe pendant les heures d’ouverture, la boîte vocale en dehors.
Main menu
Appuyez sur 1 pour une équipe, sur 2 pour une autre, et quelque chose de sensé pour la personne qui n’appuie sur rien.
English and French
L’appelant choisit, puis les heures sont vérifiées et l’appel est acheminé. Tout ce qui suit le choix est dit dans la langue retenue.
Look the caller up first
Vérifie le numéro dans vos contacts, salue les habitués par leur nom, envoie les clients prioritaires dans une file à eux.
While the caller waits
Musique d’attente, estimation du temps, et l’option de raccrocher pour être rappelé. S’assigne à une file plutôt qu’à un numéro.
Un modèle est copié dans votre flux, pas relié au nôtre. Le vôtre est à vous dès qu’il existe, et une modification plus tard de notre côté ne doit jamais réécrire un arbre téléphonique qui répond à des appels.
Ce que ça ne fait pas
Il n’y a pas de répétition générale. Rien dans l’éditeur ne vous rejoue un flux ni ne fait marcher un faux appelant sur le canevas : pour entendre ce que vous avez dessiné, il faut le publier et composer le numéro. Publier d’abord sur un numéro de rechange, c’est ce que les gens font, et ça marche, mais c’est une habitude, pas une fonction.
Rien ne garde la trace de la sortie que chaque appelant a prise. L’interpréteur sait où un appel se trouve pendant qu’il a lieu, et le registre d’appel dit ce qui lui est arrivé, mais les deux ne se rejoignent dans aucun rapport. Alors savoir combien de personnes ont appuyé sur 2 le mois dernier n’est pas quelque chose que ce produit peut vous dire aujourd’hui.
La publication a lieu quand vous appuyez sur publier. On ne peut pas aligner une version pour qu’elle entre en vigueur à minuit : si une modification doit atterrir en dehors de vos heures, quelqu’un appuie sur le bouton à ce moment-là. L’exception, c’est la dérogation d’urgence, faite justement pour n’exiger aucune publication.
Un bloc dépend de quelque chose qu’un compte n’a peut-être pas encore configuré, et la publication avertit au lieu de refuser : tant que ce n’est pas en place, chaque appelant dans cette branche va droit à une personne. C’est le bon côté vers lequel pencher, et on préfère vous dire ce qui va se passer plutôt que faire semblant que la branche est brisée.
L’éditeur lui-même est en anglais, et c’est pour ça que les libellés des blocs sur cette page le sont aussi : ce sont les mots du canevas, tels quels. Ce que l’appelant entend, lui, peut être en français. Les voix et le bloc de choix de langue couvrent le français canadien, et un des modèles ne fait que ça.
Si l’un de ces points est celui qui décide pour vous, demandez-le. J’aime mieux vous dire où le produit en est réellement que vous laisser le découvrir au deuxième appel.