Comment envoyer des liens d’invitation de calendrier Google et Outlook dans des modèles de courrier électronique – Douglas C. Ayers7 minutes de lecture
Il y a de nombreuses années, avant l’ère moderne de l’utilisation des calendriers en ligne fournis par des produits comme G-Suite et Bureau 365, J’ai blogué sur la façon d’envoyer des invitations d’agenda sous forme de pièces jointes à l’aide des modèles d’e-mail Visualforce.
La solution fonctionnait bien à l’époque pour mon entreprise. À l’époque, nous n’utilisions pas de programmes de calendrier en ligne, mais Microsoft Outlook était installé sur nos ordinateurs de bureau. Nous avons pu à partir de notre boîte de réception ouvrir la pièce jointe .ics dans Outlook et il a implicitement compris comment l’ajouter au calendrier.
Mais les temps ont changé. Et bien que la nécessité d’envoyer des invitations de calendrier par e-mail demeure, les programmes de calendrier que nous utilisons et la façon dont nous formater ces invitations peuvent être beaucoup plus simples. Lire: aucune pièce jointe ou Visualforce n’est nécessaire. De nos jours, nous pouvons fournir des liens vers notre service de calendrier de choix.
Table des matières
🗓 Inviter des liens pour Google Agenda
Commencez par l’URL de base https://calendar.google.com/calendar/r/eventedit? puis ajoutez un ou plusieurs des paramètres suivants.
Paramètre | La description |
---|---|
text | Titre de l’événement. |
details | Description de l’évenement. |
location | Lieu de l’événement. |
dates | Date / heures de début et de fin de l’événement. Utilisez le format AAAAMMJJTHHmmSSZ. Séparez la date et l’heure de début Pour les événements de toute la journée, utilisez le format AAAAMMJJ (non |
ctz | Fuseau horaire de l’événement. Peut spécifier un décalage horaire, comme -0600 , ou une abréviation de fuseau horaire, commeCDT , si vos dates ne sont pas dans le fuseau horaire UTC. |
uid | Identificateur unique d’événement. |
Exemples
Ces exemples commencent du 19 novembre 2019 à 8h00, heure centrale, au 22 novembre 2019 à 17h00, heure centrale.
Exemple 1: Ce premier exemple spécifie les heures en UTC.
https://calendar.google.com/calendar/r/eventedit? text=My+Title &details=My+Description &location=My+Location &dates=20191119T140000Z/20191122T230000Z
Exemple 2: C’est le même exemple mais cette fois en spécifiant explicitement le décalage de fuseau horaire pour l’heure normale du centre (UTC-0600).
https://calendar.google.com/calendar/r/eventedit? text=My+Title &details=My+Description &location=My+Location &dates=20191119T080000/20191122T170000 &ctz=CST
Exemple 3: C’est le même exemple mais cette fois, en spécifiant l’événement, c’est toute la journée. J’avais besoin de décaler la date de fin au lendemain pour un rendu correct. Selon le fuseau horaire du destinataire, vous devrez peut-être décaler la date de début ou de fin d’un jour. Votre kilométrage peut varier.
https://calendar.google.com/calendar/r/eventedit? text=My+Title &details=My+Description &location=My+Location &dates=20191119/20191123
🗓 Inviter des liens pour Microsoft Outlook
Commencez par l’URL de base https://outlook.live.com/owa/?path=/calendar/action/compose# puis ajoutez un ou plusieurs des paramètres suivants.
Paramètre | La description |
---|---|
subject | Titre de l’événement. |
body | Description de l’évenement. |
location | Lieu de l’événement. |
startdt | Date / heure de début de l’événement. Utilisez le format AAAAMMJJTHHmmSSZ. |
enddt | Date / heure de fin de l’événement. Utilisez le format AAAAMMJJTHHmmSSZ. |
allday | L’événement est-il toute la journée? Spécifier true ou false .En fonction du destinataire |
uid | Identificateur unique d’événement. |
Exemples
Ces exemples commencent du 19 novembre 2019 à 8h00, heure centrale, au 22 novembre 2019 à 17h00, heure centrale.
Exemple 1: Ce premier exemple spécifie les heures en UTC.
https://outlook.live.com/owa/?path=/calendar/action/compose# subject=My+Title &body=My+Description &location=My+Location &startdt=20191119T140000Z &enddt=20191122T230000Z &allday=false
Exemple 2: C’est le même exemple, mais cette fois spécifiant explicitement le décalage de fuseau horaire pour l’heure normale du centre (UTC-0600).
https://outlook.live.com/owa/?path=/calendar/action/compose# subject=My+Title &body=My+Description &location=My+Location &startdt=20191119T080000-0600 &enddt=20191122T170000-0600 &allday=false
Exemple 3: C’est le même exemple mais cette fois, en spécifiant l’événement, c’est toute la journée. J’avais besoin de spécifier mon fuseau horaire dans les dates de début / fin pour un rendu correct. En fonction du fuseau horaire du destinataire, vous devrez peut-être également modifier la date de début ou de fin. Votre kilométrage peut varier.
https://outlook.live.com/owa/?path=/calendar/action/compose# subject=My+Title &body=My+Description &location=My+Location &startdt=20191119T000000-0600 &enddt=20191122T000000-0600 &allday=true
🔗 Encodage d’URL
Si les valeurs de vos paramètres contiennent des espaces ou des caractères spéciaux, ils doivent être encodés pour que l’URL soit valide.
Salesforce fournit le URLENCODE fonction dans les champs de formule et les modèles de courrier électronique. Par exemple, {!URLENCODE(MyTextField__c)}
.
Dans Apex, vous pouvez utiliser le EncodingUtil.urlEncode () méthode. Par exemple, EncodingUtil.urlEncode( evt.Description, 'UTF-8' );
🌎 Fuseaux horaires
Lors du référencement de la date / heure dans les champs de formule et dans Apex, Salesforce vous fournit les valeurs dans le fuseau horaire UTC. ⏰
Heureusement, Google Agenda et Microsoft Outlook convertiront automatiquement et facilement la date et l’heure de votre lien vers le fuseau horaire local du destinataire selon les paramètres de son agenda. 🙌
Donc, dans la mesure du possible, standardisez en mettant votre date / heure en UTC.
📧 Ajouter des liens d’invitation aux modèles d’e-mail Salesforce
Maintenant que vous connaissez les formats d’URL pour ajouter des événements à Google Agenda et Microsoft Outlook, il est temps de commencer à les utiliser dans vos modèles d’e-mail Salesforce.
Je recommande d’ajouter des champs de formule sur vos objets à partir desquels vous enverrez des e-mails pour faciliter la création des liens. J’ai inclus quelques formules qui pourraient vous être utiles.
Calculer l’heure de début de l’événement en UTC
Compte tenu de l’heure de début de l’événement le 19 novembre 2019 à 8 h 00 CST, cette formule sortira 20191119T140000Z
.
TEXTE (YEAR (ActivityDate)) & | |
LPAD (TEXT (MONTH (ActivityDate)), 2, ‘0’) & | |
LPAD (TEXT (DAY (ActivityDate)), 2, ‘0’) & | |
‘T’ et | |
LPAD (TEXT (HOUR (TIMEVALUE (ActivityDateTime))), 2, ‘0’) & | |
LPAD (TEXT (MINUTE (TIMEVALUE (ActivityDateTime))), 2, ‘0’) & | |
LPAD (TEXT (SECOND (TIMEVALUE (ActivityDateTime))), 2, ‘0’) & | |
«Z»; |
Calculer l’heure de la date de fin de l’événement en UTC
Les événements de l’interface utilisateur de Salesforce permettent à l’utilisateur de sélectionner un début et heure de fin. Mais dans la base de données, il stocke uniquement ActivityStartTime et DurationInMinutes. Pour calculer la date / heure de fin, nous devons faire quelques calculs.
Compte tenu d’une heure de début de l’événement le 19 novembre 2019 à 8h00 CST et d’une durée de 540 minutes (9 heures … jusqu’à 17h00) cette formule sortira 20191119T230000Z
.
/ * 1440 minutes par jour * / | |
TEXTE (YEAR (ActivityDate + DurationInMinutes / 1440)) & | |
LPAD (TEXT (MONTH (ActivityDate + DurationInMinutes / 1440)), 2, ‘0’) & | |
LPAD (TEXT (DAY (ActivityDate + DurationInMinutes / 1440)), 2, ‘0’) & | |
‘T’ et | |
LPAD (TEXT (HOUR (TIMEVALUE (ActivityDateTime + DurationInMinutes / 1440))), 2, ‘0’) & | |
LPAD (TEXT (MINUTE (TIMEVALUE (ActivityDateTime + DurationInMinutes / 1440))), 2, ‘0’) & | |
LPAD (TEXT (SECOND (TIMEVALUE (ActivityDateTime + DurationInMinutes / 1440))), 2, ‘0’) & | |
«Z»; |
Enfin, mettez tout cela ensemble:
https://calendar.google.com/calendar/r/eventedit?text={!URLENCODE(Event.Subject)}&details={!URLENCODE(Event.Description)}&location={!URLENCODE(Event.Location)}&dates={!Event.Start_Date_Time_UTC__c}/{!Event.End_Date_Time_UTC__c}