Loading
Agentforce Field Service and Operations
Création des flux de traitement des absences de ressource de service dans le Générateur Agentforce hérité

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.

Flux Absence de ressource

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.

Flux Reprogrammer les rendez-vous

 
Chargement
Salesforce Help | Article