setTargetObjectId() vs setToAddresses() / Blogs / Perficient

Dans Salesforce, l’automatisation des e-mails est un outil puissant. Il améliore l’engagement client, rationalise la communication et augmente l’efficacité. En tant que développeur Salesforce, vous avez probablement rencontré différentes méthodes d’envoi d’e-mails avec Apex. Chaque méthode a ses atouts et ses nuances. Deux des méthodes les plus courantes sont setTargetObjectId() et setToAddresses(). Les deux méthodes servent à envoyer des e-mails, mais elles fonctionnent différemment. Comprendre leurs différences vous aidera à choisir l’outil adapté à vos besoins.
Les bases : setTargetObjectId() et setToAddresses()
Avant de plonger dans les comparaisons, examinons brièvement ce que font ces méthodes :
- setTargetObjectId() : cette méthode est utilisée pour spécifier le destinataire d’un e-mail par son ID d’enregistrement Salesforce. Il est particulièrement utile lorsque vous envoyez des e-mails à des utilisateurs, des prospects ou des contacts Salesforce, car il exploite les fonctionnalités de messagerie intégrées de Salesforce, telles que les modèles d’e-mails et le suivi.
setToAddresses() : D’autre part, setToAddresses() vous permet de spécifier directement des adresses e-mail. Cette méthode vous offre la possibilité d’envoyer des e-mails à n’importe quelle adresse e-mail, qu’elle soit associée ou non à un enregistrement Salesforce. Cependant, cela ne lie pas automatiquement l’e-mail à un enregistrement Salesforce, ce qui peut être à la fois un avantage et une limitation selon votre cas d’utilisation.
Exemples
Exemple 1 : Utilisation de setTargetObjectId()
Supposons que vous souhaitiez envoyer un e-mail à un contact de votre organisation Salesforce à l’aide d’un modèle d’e-mail prédéfini. Voici comment procéder :
Contact contact = [SELECT Id, Email FROM Contact WHERE Email="example@example.com" LIMIT 1]; Messaging.SingleEmailMessage email = new Messaging.SingleEmailMessage(); email.setTargetObjectId(contact.Id); email.setTemplateId('00X5g000003I4rQ'); email.setSaveAsActivity(true); Messaging.sendEmail(new Messaging.SingleEmailMessage[] { email });
Dans cet exemple, l’e-mail est automatiquement lié à l’enregistrement du contact et le contenu de l’e-mail est extrait du modèle spécifié.
Exemple 2 : Utilisation de setToAddresses()
Imaginons maintenant un scénario dans lequel vous devez envoyer un e-mail à une personne extérieure à votre organisation Salesforce, telle qu’un partenaire ou un client potentiel dont les informations ne sont pas encore dans votre système :
Messaging.SingleEmailMessage email = new Messaging.SingleEmailMessage(); email.setToAddresses(new String[] { 'external@example.com' }); email.setSubject('Welcome to Our Service'); email.setPlainTextBody('Thank you for your interest in our service. We look forward to working with you.'); Messaging.sendEmail(new Messaging.SingleEmailMessage[] { email });
Ici, vous envoyez un e-mail simple à une adresse externe, sans le lier à aucun enregistrement Salesforce.
Avantages et inconvénients
setTargetObjectId()
Avantages:
- Intégration avec les enregistrements Salesforce : les e-mails sont automatiquement associés aux enregistrements Salesforce, ce qui facilite le suivi de l’historique des communications.
- Tire parti des modèles d’e-mail : vous pouvez utiliser des modèles d’e-mail Salesforce, ce qui permet de gagner du temps et de garantir une messagerie cohérente.
- Journalisation des activités : enregistre automatiquement l’e-mail en tant qu’activité sous l’enregistrement associé, offrant ainsi une vue complète des interactions.
Inconvénients :
- Limité aux enregistrements Salesforce : vous pouvez uniquement envoyer des e-mails aux enregistrements Salesforce existants (contacts, prospects, utilisateurs, etc.).
- Nécessite des requêtes supplémentaires : pour utiliser setTargetObjectId(), vous devez souvent effectuer une requête SOQL pour récupérer l’ID d’enregistrement, ce qui peut ajouter de la complexité et des problèmes de limite du gouverneur.
setToAddresses()
Avantages:
- Flexibilité : envoyez des e-mails à n’importe quelle adresse e-mail, qu’elle soit dans Salesforce ou non.
- Simplicité : Pas besoin d’effectuer de requêtes supplémentaires si l’adresse email est déjà connue.
- Utilisation pour les utilisateurs non-Salesforce : idéal pour envoyer des e-mails à des parties externes ou pour des communications ponctuelles.
Inconvénients :
- Aucune association automatique : les e-mails ne sont pas automatiquement liés aux enregistrements Salesforce, ce qui signifie qu’ils n’apparaîtront pas dans l’historique des communications.
- Gestion manuelle des modèles : si vous souhaitez utiliser un modèle, vous devrez gérer le contenu manuellement, ce qui peut être fastidieux.
setTargetObjectId() contre setToAddresses()
Fonctionnalité | setTargetObjectId() | setToAddresses() |
---|---|---|
Destinataire | Enregistrements Salesforce (contacts, prospects) | N’importe quelle adresse e-mail |
Modèles d’e-mails | Oui, parfaitement intégré | Manutention manuelle |
Journalisation des activités | Automatique | Sans objet |
Cas d’utilisation | Communications internes, suivi nécessaire | Communications externes, flexibilité |
Complexité | Nécessite une requête SOQL, plus de configuration | Simple, direct |
Statistiques et informations
- Efficacité : selon les rapports des utilisateurs de Salesforce, l’utilisation de setTargetObjectId() peut améliorer l’efficacité du flux de travail jusqu’à 20 % grâce à la journalisation automatique et à l’utilisation des modèles.
Flexibilité : 75 % des développeurs préfèrent setToAddresses() pour les e-mails ponctuels ou externes en raison de sa simplicité et de sa flexibilité.
Gouvernance : l’utilisation de setTargetObjectId() peut parfois conduire à atteindre plus rapidement les limites du gouverneur, en particulier dans les grandes organisations comportant de nombreux enregistrements. Cela fait de setToAddresses() un choix plus sûr pour les opérations à volume élevé.
Réflexions finales sur setTargetObjectId() et setToAddresses()
Le choix entre setTargetObjectId() et setToAddresses() dépend en grande partie de votre cas d’utilisation spécifique. Si vous travaillez au sein de l’écosystème Salesforce et devez conserver un historique de communication détaillé, setTargetObjectId() est la voie à suivre. Il est puissant, s’intègre parfaitement aux fonctionnalités de Salesforce et automatise une grande partie de la tenue des dossiers.
Cependant, si vous recherchez de la flexibilité, notamment lorsque vous traitez avec des parties externes, setToAddresses() offre la liberté d’envoyer des e-mails à n’importe quelle adresse sans les contraintes des enregistrements Salesforce. C’est simple, direct et idéal pour les communications ponctuelles.
En fin de compte, les deux méthodes ont leur place dans votre boîte à outils Salesforce. Comprendre leurs forces et leurs faiblesses vous permettra de tirer parti de la bonne approche, garantissant ainsi que vos communications par courrier électronique sont à la fois efficaces et efficientes.
Consultez les articles ci-dessous pour plus d’informations !
Automatisation des e-mails avec setTargetObjectId
Documentation Salesforce
Source link