ANS-1506 · DéVELOPPEMENT SUITESCRIPT

Comment extraire les fils de discussion des e-mails de transaction NetSuite à l’aide de SuiteScript ?

Découvrez les bonnes pratiques pour envoyer des e-mails par programmation dans NetSuite et les associer aux enregistrements concernés afin de conserver des fils de discussion complets.

Solution courte

Pour capturer les fils de discussion par e-mail liés aux transactions NetSuite à l’aide d’un script, utilisez l’API SuiteScript 2.x N/email.send. Assurez-vous que le paramètre relatedRecords associe correctement l’e-mail à la transaction à l’aide de transactionId, et précisez l’auteur et les destinataires de manière appropriée. Cette méthode garantit un enchaînement correct des messages et une association adéquate des enregistrements.

Scénario

Les utilisateurs ont souvent besoin d’envoyer des e-mails de manière programmatique depuis NetSuite et de s’assurer que ces communications sont correctement associées à des transactions, des clients ou d’autres enregistrements spécifiques. Pour obtenir un enchaînement correct des e-mails et une liaison adéquate avec les enregistrements, il est nécessaire de configurer avec précision les paramètres de l’API e-mail SuiteScript.

Solution

Pour garantir un enchaînement correct des e-mails et leur association avec les enregistrements NetSuite lors de l’envoi d’e-mails par programmation, il est essentiel de configurer correctement les paramètres de l’API e-mail SuiteScript. L’API N/email.send de SuiteScript 2.x constitue actuellement la meilleure pratique pour cette fonctionnalité.

La fonction N/email.send nécessite un objet JavaScript options pour définir ses paramètres. Une combinaison très spécifique de ces paramètres est requise pour déclencher l’enchaînement des e-mails et l’association aux enregistrements :

  • author : ce paramètre doit correspondre à l’identifiant interne d’un collaborateur.
  • recipients : ce paramètre peut être un identifiant interne d’enregistrement client, un identifiant interne de contact ou une adresse e-mail directement.
  • subject : l’objet de l’e-mail.
  • body : le corps de l’e-mail.
  • relatedRecords : cet objet est essentiel pour associer l’e-mail aux fiches NetSuite. Pour les transactions, il doit contenir transactionId: transactionId. Pour les clients ou les contacts, utilisez entityId: entityId.
  • attachments : un tableau d’objets file.File à joindre.
  • cc : un tableau d’identifiants internes ou d’adresses e-mail pour les destinataires en copie cachée.
  • bcc : un tableau d’identifiants internes ou d’adresses e-mail pour les destinataires en copie cachée.

Le code SuiteScript 2.x suivant montre comment envoyer un e-mail et l’associer à une transaction :

javascript
// Assuming 'email' module is loaded (e.g., via define(['N/email'], function(email) { ... }))
var SCRIPT_AUTHOR_ID = '786014'; // Employee Record Internal ID
var emailAuthor = SCRIPT_AUTHOR_ID;
var transactionId = 'YOUR_TRANSACTION_ID'; // Placeholder for actual transaction ID
var customerId = 'YOUR_CUSTOMER_ID';     // Placeholder for actual customer ID or email address
var emailSubject = 'YOUR_EMAIL_SUBJECT';
var emailBody = 'YOUR_EMAIL_BODY';
var emailAttachment = null; // Or an array of file.File objects

email.send({
    author: emailAuthor,
    recipients: customerId, // Can be an internal ID or an email address
    subject: emailSubject,
    body: emailBody,
    relatedRecords: {
        transactionId: transactionId
        // For associating with a customer/contact directly, use entityId: customerId
    },
    attachments: emailAttachment ? [emailAttachment] : null,
    cc: null, // Or an array of recipient IDs/emails
    bcc: null // Or an array of recipient IDs/emails
});

Par défaut, l’auteur désigné d’un e-mail envoyé via SuiteScript ne reçoit pas de copie dans sa boîte de réception personnelle, car NetSuite part du principe que c’est l’auteur qui a initié la communication. Pour vous assurer que l’auteur reçoive une copie, son adresse e-mail peut être incluse dans le paramètre cc de l’objet d’options N/email.send :

javascript
// Example of including the author's email in CC
email.send({
    author: emailAuthor,
    recipients: customerId,
    subject: emailSubject,
    body: emailBody,
    cc: ['author@email.com'], // Include author's email address here
    relatedRecords: {
        transactionId: transactionId
    }
    // ... other parameters like attachments, bcc
});

Le comportement lié aux destinataires en copie (CC) et à la fonctionnalité « Répondre à tous » peut varier en fonction des configurations du client de messagerie et des paramètres spécifiques de NetSuite ; il convient donc de le tester dans votre environnement.

Lorsqu’ils sont correctement configurés, les e-mails envoyés à l’aide de N/email.send seront enregistrés et regroupés dans les fils de discussion associés aux fiches de transaction, de client et d’employé au sein de NetSuite, offrant ainsi un historique complet des communications.

Support expert NetSuite

Besoin d’aide pour cet enjeu NetSuite ?

Accompagnement-conseil et configuration pour Développement SuiteScript

Parler à un consultant