Création des flux de traitement des absences de ressource de service dans le Générateur Agentforce hérité
Créez deux flux, l'un pour créer l'absence de ressource et l'autre pour reprogrammer les rendez-vous de service.
Éditions requises
| Disponible avec : Lightning Experience |
| Disponible avec : Enterprise Edition, Performance Edition, Unlimited Edition et Developer Edition with Field Service and Foundations, ou Einstein 1 Field Service Edition ou Agentforce 1 Field Service Edition. |
Flux Absence de ressource
Ce flux renvoie la liste des rendez-vous de service du jour auxquels la ressource de service qui a demandé l'absence est attribuée, et crée une absence de ressource.
Créez un flux lancé automatiquement qui effectue les opérations suivantes :
- Récupère l'ID de la ressource de service
- Détermine le fuseau horaire et les heures ouvrables pour le territoire de service principal
- Détermine le fuseau horaire et les heures ouvrables du territoire de service de relocalisation
- Empêche la création d'enregistrements d'absence dupliqués si le flux est exécuté plusieurs fois le même jour
- Recherche tous les rendez-vous attribués à l'agent mobile aujourd'hui
Variables
| Nom d'API | Détails |
|---|---|
| saIdsFromAssignedResource | Texte Sélectionner pour autoriser les valeurs multiples (collection) |
| serviceResourceSAIds | Texte Sélectionner pour autoriser les valeurs multiples (collection) Disponible pour la sortie |
| currentDateTimeTZ | Type de données : Texte |
| STMRelocation | Type de données : Enregistrement Objet : Membre du territoire de service |
| timeZone | Remarque : Cette variable n'est pas utilisée dans le flux, mais elle est requise pour l'entrée de l'action de l'agent. Vous pouvez saisir une valeur par défaut ici, par exemple UTC. Type de données : Texte Valeur par défaut : « » Disponible pour l'entrée |
| varEnd | Type de données : Date/heure |
| varRecordTypeId | Type de données : Texte |
| varResourceId | Type de données : Texte |
| varStart | Type de données : Date/heure |
Formules
| Nom d'API | Type de données | Formule |
|---|---|---|
| LocalDateTimeEndOfDayFormula | Date/heure | DATETIMEVALUE(TEXT(DATEVALUE({!currentDateTimeTZ})) + " 23:59:59") |
| LocalDateTimeNowFormula | Date/heure | DATETIMEVALUE(TEXT(DATEVALUE({!currentDateTimeTZ})) + " 00:00:00") |
| TodayEndFormula | Date/heure | DATETIMEVALUE(TEXT(DATEVALUE({!currentDateTimeTZ})) + " 23:59:59") |
| TodayStartFormula | Date/heure | NOW() |
Éléments
| Élément du flux | Configuration |
|---|---|
| Obtention d'enregistrements | Étiquette : Récupération de l'ID de ressource de service Objet Salesforce : Ressource de service Filtre : Toutes les conditions sont remplies (AND) Champ : ID d'utilisateur, Opérateur : Égal à, Valeur : Utilisateur actuel > id |
| Obtention d'enregistrements | Étiquette : Obtenir le membre du territoire de service principal Objet Salesforce : Membre du territoire de service Filtre : La logique de condition personnalisée est remplie 1. Champ : ID de ressource, Opérateur : Égal à, Valeur : Ressource de service dans Obtenir l'ID de ressource de service > ID de ressource 2. Champ : Type de territoire, Opérateur : Égal à, Valeur : Principal 3. Champ : Date de début, Opérateur : Inférieur ou égal à, Valeur : TodayStartFormula 4. Champ : Date de fin, Opérateur : Supérieur à, Valeur : TodayStartFormula 5. Champ : Date de fin, Opérateur : Est nul, Valeur : True Logique de la condition : 1 ET 2 ET 3 ET (4 OU 5) |
| Obtention d'enregistrements | Étiquette : Obtenir le membre du territoire de service de relocalisation Objet Salesforce : Membre du territoire de service Filtre : La logique de condition personnalisée est remplie 1. Champ : ID de ressource, Opérateur : Égal à, Valeur : Ressource de service dans Obtenir l'ID de ressource de service > ID de ressource 2. Champ : Type de territoire, Opérateur : Égal à, Valeur : Relocalisation 3. Champ : Date de début, Opérateur : Inférieur ou égal à, Valeur : TodayStartFormula 4. Champ : Date de fin, Opérateur : Supérieur ou égal à, Valeur : TodayStartFormula 5. Champ : Date de fin, Opérateur : Est nul, Valeur : True Logique de la condition : 1 ET 2 ET 3 ET (4 OU 5) Comment stocker les données d'enregistrement : Choisir des champs et attribuer des variables (avancé) Enregistrement : STMRelocation |
| Décision | Étiquette : Le territoire de service de relocalisation est-il membre ? Étiquette du résultat : Oui Étiquette de résultat par défaut : Non Filtre : Toutes les conditions sont remplies (AND) Ressource : STMRelocation, Opérateur : Est vide, Valeur : False Étiquette de résultat par défaut : Non (par défaut) |
| Non > Obtenir des enregistrements | Étiquette : Obtenir les heures ouvrables principales du territoire de service Objet Salesforce : Territoire de service Filtre : Toutes les conditions sont remplies (AND) Champ : ID de territoire, Opérateur : Égal à, Valeur : Membre du territoire de service dans Obtenir le membre du territoire de service principal > ID de territoire Comment stocker les données d'enregistrement : Sélectionner des champs et laisser Salesforce s'occuper du reste Champ : OperatingHoursId |
| Obtention d'enregistrements | Étiquette : Obtenir le fuseau horaire principal Objet Salesforce : Heures opérationnelles Filtre : Toutes les conditions sont remplies (AND) Champ : ID d'heure ouvrable, Opérateur : Égal à, Valeur : Territoire de service dans Obtenir les heures ouvrables principales du territoire de service > ID d'heure ouvrable |
| Action | Action : Obtenir l'heure actuelle Étiquette : Obtenir l'heure actuelle principale Fuseau horaire : Heures ouvrables depuis Obtenir le fuseau horaire principal > Fuseau horaire Attribution manuelle de variables (avancé) Stocker les valeurs de sortie : currentDateTimeTZ |
| Oui > Obtenir des enregistrements | Étiquette : Obtenir les heures ouvrables de relocalisation du territoire de service Objet Salesforce : Territoire de service Filtre : Toutes les conditions sont remplies (AND) Champ : ID de territoire, Opérateur : Égal à, Valeur : STMRelocation > ID de territoire de la ressource Comment stocker les données d'enregistrement : Sélectionner des champs et laisser Salesforce s'occuper du reste Champ : OperatingHoursId |
| Obtention d'enregistrements | Étiquette : Obtenir la relocalisation du fuseau horaire Objet Salesforce : Heures opérationnelles Filtre : Toutes les conditions sont remplies (AND) Champ : ID d'heure ouvrable, Opérateur : Égal à, Valeur : Territoire de service dans Obtenir les heures ouvrables de relocalisation du territoire de service > ID d'heure ouvrable |
| Action | Action : Obtenir l'heure actuelle Étiquette : Obtenir la relocalisation à l'heure actuelle Fuseau horaire : Heures ouvrables depuis Obtenir le déplacement du fuseau horaire > Fuseau horaire Attribution manuelle de variables (avancé) Stocker les valeurs de sortie : currentDateTimeTZ |
| Connecter les chemins Non et Oui > Obtenir des enregistrements | Étiquette : Obtenir l'absence de ressource existante Objet Salesforce : Absence de ressource Filtre : Toutes les conditions sont remplies (AND) 1. Champ : ID de ressource, Opérateur : Égal à, Valeur : Ressource de service dans Obtenir l'ID de ressource de service > ID de ressource 2. Champ : Heure de début, Opérateur : Inférieur ou égal à , Valeur : LocalDateTimeEndOfDayFormula 3. Champ : Heure de fin, Opérateur : Supérieur ou égal à, Valeur : LocalDateTimeNowFormula 4. Champ : Type, Opérateur : Égal à, Valeur : Maladie Comment stocker les données d'enregistrement : Choisir des champs et attribuer des variables (avancé) Emplacement de stockage des valeurs de champ : Dans des variables séparées Champ : RecordTypeId, Variable : varRecordTypeId Champ : ResourceId, Variable : varResourceId |
| Attribution | Étiquette : Attribuer la date et l'heure actuelles Variable : varStart, Opérateur : Égal à, Valeur : TodayStartFormula Variable : varEnd, Opérateur : Égal à, Valeur : TodayEndFormula |
| Décision | Étiquette : Absence de ressource dans le diagramme de Gantt ? Étiquette du résultat : Non Filtre : Toutes les conditions sont remplies (AND) Ressource : varResourceId, Opérateur : est nul, Valeur : True Remarque : Vous pouvez ajouter d'autres champs récupérés dans le flux, vérifier s'ils ne sont pas vides ou nuls, et déterminer si l'absence de ressource doit être créée. Étiquette de résultat par défaut : Oui (par défaut) |
| Non > Obtenir des enregistrements | Étiquette : Obtenir le type d'enregistrement Objet Salesforce : Type d'enregistrement Filtre : Toutes les conditions sont remplies (AND) Champ : Nom du type d'enregistrement, Opérateur : Égal à, Valeur : Non_Disponibilité |
| Création d’enregistrements | Étiquette : Créer une absence de ressource Comment définir des valeurs de champ d'enregistrement : Manuellement Objet Salesforce : Absence de ressource 1. Champ : Heure de fin, Valeur : LocalDateTimeEndOfDayFormula 2. Champ : Heure de début, Valeur : TodayStartFormula 3. Champ : ID de type d'enregistrement, Valeur : Type d'enregistrement dans Obtenir le type d'enregistrement > ID de type d'enregistrement 4. Champ : ID de ressource, Valeur : Ressource de service dans Obtenir l'ID de ressource de service > ID de ressource 5. Champ : Approuvé, Valeur : True 6. Champ : Type, Valeur : Maladie |
| Connecter les chemins Non et Oui > Obtenir des enregistrements | Étiquette : Obtenir un rendez-vous de service Objet Salesforce : Rendez-vous de service Filtre : Toutes les conditions sont remplies (AND) 1. Champ : Début planifié, Opérateur : Supérieur ou égal à, Valeur : TodayStartFormula 2. Champ : Fin planifiée, Opérateur : Inférieur ou égal à, Valeur : TodayEndFormula 3. Champ : ID de territoire, Opérateur : Égal à, Valeur : Territoire de service dans Obtenir les heures ouvrables principales du territoire de service > ID de territoire Nombre d'enregistrements à stocker : Tous les enregistrements Choisissez des champs et laissez Salesforce faire le reste : L'ID est saisi par défaut |
| Boucle | Étiquette : Itération sur les rendez-vous de service du jour Variable de collection : Rendez-vous de service depuis Obtenir des rendez-vous de service Spécifier le sens d'itération de la collection : Premier à dernier élément |
| Pour chaque > Attribution | Étiquette : Définir la liste des ID de rendez-vous de service Définir les valeurs Var : saIdsFromAssignedResource, Opérateur : Ajouter, Valeur : Élément actuel de la boucle Itération sur les rendez-vous de service > ID de rendez-vous de service |
| Après la dernière > Obtenir des enregistrements | Étiquette : Obtenir un rendez-vous de service à partir de la ressource attribuée Objet Salesforce : Ressource attribuée Filtre : Toutes les conditions sont remplies (AND) 1. Champ : ID de rendez-vous de service, Opérateur : Dans, Valeur : saIdsFromAssignedResource 2. Champ : ID de ressource de service , Opérateur : Égal à, Valeur : Ressource de service dans Obtenir l'ID de ressource de service > ID de ressource Nombre d'enregistrements à stocker : Tous les enregistrements Comment stocker les données d'enregistrement : Sélectionner des champs et laisser Salesforce s'occuper du reste 1. Champ : Id 2. Champ : serviceAppointmentId |
| Boucle | Étiquette : Itération sur la ressource attribuée pour aujourd'hui Variable de collection : Ressources attribuées depuis Obtenir un rendez-vous de service depuis la ressource attribuée |
| Pour chaque > Attribution | Étiquette : Définir la liste des ID de rendez-vous de service du jour Variable : serviceResourceSAIds, Opérateur : Ajouter, Valeur : Élément actuel de la boucle Itérer sur Attribuer une ressource pour Aujourd'hui > ID de rendez-vous de service |
Votre flux doit se présenter comme suit.

Replanification du flux Rendez-vous de service
Ce flux tente de reprogrammer les rendez-vous de service de la ressource de service individuellement.
Créez un flux lancé automatiquement avec les détails ci-dessous.
Variables
| Nom d'API | Détails |
|---|---|
| saResults | Type de données : Texte Disponible pour la sortie |
| serviceAppointmentId | Type de données : Texte Disponible pour l'entrée |
Éléments
| Élément du flux | Configuration |
|---|---|
| Obtention d'enregistrements | Étiquette : Obtenir la stratégie de planification Objet Salesforce : Stratégie de planification Filtre : Toutes les conditions sont remplies (AND) Champ : Nom de la stratégie de planification, Opérateur : Égal à, Valeur : Client en premier |
| Flux secondaire | Flux secondaire : Field Service : Prendre un rendez-vous de service Étiquette : Reprogrammer le rendez-vous de service serviceAppointmentId: Inclus, Valeur : serviceAppointmentId |
| Décision | Étiquette : La reprogrammation a-t-elle réussi ? Étiquette du résultat : Non Étiquette de résultat par défaut : Oui Filtre : Toutes les conditions sont remplies (AND) Ressource : Sorties de Reprogrammer le rendez-vous de service > serviceAppointmentId, Opérateur : Égal à, Valeur : Valeur vide (chaîne vide) |
| Non > Action | Action : Prendre un rendez-vous de service (scheduleServiceAppointment) Étiquette : Nouvelle planification ID de stratégie de planification : Stratégie de planification depuis Obtenir la stratégie de planification > ID d'enregistrement ID de rendez-vous de service : serviceAppointmentId |
| Connecter les chemins Non et Oui > Attribution | Étiquette : Attribuer l'ID de rendez-vous de service Variable : saResults, Opérateur : Égal à, Valeur : Sorties de Reprogrammer le rendez-vous de service > serviceAppointmentId |
Votre flux doit se présenter comme suit.

