Votre modèle de données pour le traitement des retours et des remboursements
Votre modèle de données pour le traitement des retours et des remboursements
- Attributs recommandés à recueillir
- Activités clés à suivre
- Guide d’extraction pour NetSuite
Attributs du traitement des retours et des remboursements
| Nom | Description | ||
|---|---|---|---|
| Horodatage de l’événement EventTimestamp | Date et heure précises de l’activité, qui constituent le fil chronologique du processus. | ||
| Description L’horodatage de l’événement indique le moment exact où une activité a eu lieu. Ces données sont essentielles pour ordonner correctement les événements et réaliser toutes les analyses temporelles. Elles servent à calculer les délais entre les activités, le temps de cycle total des cas et les temps d’attente, des mesures fondamentales pour suivre les performances, analyser les goulots d’étranglement et vérifier le respect des SLA. Les horodatages doivent être exacts pour garantir la fiabilité des analyses de Process Mining. Pourquoi est-ce important ? Cet attribut établit l’ordre chronologique des événements, nécessaire pour découvrir le flux du processus et calculer les indicateurs de performance, comme les temps de cycle et les temps d’attente. Où trouver ces données Ces informations proviennent généralement des champs « Date Created » ou « Last Modified Date » des fiches NetSuite, ou des horodatages de la liste System Notes associée aux transactions. Exemples 2023-10-26T10:00:00Z2023-10-26T14:35:10Z2023-10-27T09:12:05Z | |||
| ID de cas de retour ReturnCaseId | Identifiant unique d’un cas de retour ou de remboursement client, qui relie toutes les activités associées, du lancement à la clôture. | ||
| Description L’ID de cas de retour est l’identifiant principal qui permet de suivre le parcours complet d’un retour. Chaque ID unique correspond à une autorisation de retour et permet d’analyser l’ensemble des événements associés, comme la réception et l’inspection de l’article ou le traitement du remboursement. En Process Mining, cet ID est essentiel pour reconstituer le flux complet de chaque retour, calculer les temps de cycle et repérer les écarts propres à chaque cas. Pourquoi est-ce important ? Cet attribut est fondamental pour le Process Mining : il relie les événements individuels en instances de processus cohérentes, de bout en bout, et permet ainsi d’analyser les flux de processus et leurs performances. Où trouver ces données Il s’agit généralement de l’Internal ID ou du Transaction ID de la fiche d’autorisation de retour dans NetSuite. Exemples RMA-0012345RMA-0012346RMA-0012347 | |||
| Nom de l’activité ActivityName | Nom de l’événement métier ou de l’étape précise qui s’est produite dans le processus de retour, par exemple « Article inspecté » ou « Remboursement traité ». | ||
| Description Le nom de l’activité désigne une étape ou un jalon distinct du cycle de retour et de remboursement. Les événements sont classés selon leur horodatage pour reconstituer le flux du processus. L’analyse de leur séquence et de leur fréquence permet de repérer les parcours les plus courants, les goulots d’étranglement entre les étapes ainsi que les reprises ou les activités répétées. Exemples : « Autorisation de retour créée », « Article reçu » et « Avoir approuvé ». Pourquoi est-ce important ? Cet attribut définit les étapes du processus. Il est essentiel pour visualiser la cartographie du processus, analyser les variations du flux et repérer les goulots d’étranglement ou les boucles de reprise. Où trouver ces données Cet attribut est généralement déduit des changements de statut des transactions, comme les autorisations de retour et les avoirs, ou d’actions précises des utilisateurs consignées dans les notes système ou dans des journaux d’événements personnalisés. Exemples Autorisation de retour crééeArticle reçuArticle inspectéRemboursement traitéAutorisation de retour clôturée | |||
| Dernière mise à jour des données LastDataUpdate | Horodatage indiquant la dernière actualisation ou mise à jour des données de ce processus. | ||
| Description Cet attribut indique la date de la dernière mise à jour du jeu de données à partir du système source. Ces métadonnées essentielles renseignent les utilisateurs sur l’actualité de l’analyse. L’affichage de cette information dans les Dashboards permet de définir les attentes et de prendre des décisions en tenant compte de la date des données. Pourquoi est-ce important ? Indique la date des données, ce qui est essentiel pour que les utilisateurs puissent se fier à l’analyse et comprendre dans quelle mesure elle reflète la situation actuelle des opérations. Où trouver ces données Cet horodatage est généré et ajouté lors du processus d’extraction, de transformation et de chargement des données (ETL). Exemples 2024-05-21T02:00:00Z2024-05-22T02:00:00Z | |||
| Système source SourceSystem | Système d’où proviennent les données extraites, utilisé pour en suivre la provenance. | ||
| Description Cet attribut indique l’origine des données du processus. Dans ce contexte, il s’agit généralement de « NetSuite ». Préciser le système source est important lorsque les données proviennent de plusieurs systèmes, afin d’assurer leur traçabilité et de connaître clairement leur origine. Pourquoi est-ce important ? Indique l’origine des données, ce qui est essentiel pour leur gouvernance, le diagnostic des problèmes et les situations où des données de plusieurs systèmes sont réunies pour obtenir une vue complète du processus. Où trouver ces données Il s’agit d’une valeur statique (« NetSuite »), généralement ajoutée lors de l’extraction et de la transformation des données. Exemples NetSuiteNetSuite ERP | |||
| Agent de traitement ProcessingAgent | Employé ou utilisateur ayant effectué une activité précise dans le processus de retour. | ||
| Description L’agent de traitement désigne la personne chargée d’effectuer une tâche donnée, comme approuver un retour ou inspecter un article. Cet attribut est essentiel pour analyser les performances à l’échelle individuelle. Il aide à repérer les employés les plus performants, les besoins éventuels de formation et les déséquilibres dans la répartition de la charge de travail au sein d’une équipe. L’analyse des activités par agent est essentielle au Dashboard « Performance du processus de retour par service ». Pourquoi est-ce important ? Permet d’analyser les performances individuelles et celles des équipes, d’équilibrer la charge de travail et de repérer les besoins de formation, avec un effet direct sur l’efficacité opérationnelle. Où trouver ces données Ces informations peuvent provenir de champs comme « Créé par » ou « Approuvé par », ou des champs utilisateur de la liste System Notes des transactions NetSuite. Exemples Alice JohnsonBob WilliamsCharlie Brown | |||
| Montant réel du remboursement ActualRefundAmount | Montant finalement remboursé au client. | ||
| Description Cet attribut correspond au montant effectivement crédité ou remboursé au client, tel qu’il est enregistré dans la transaction Credit Memo ou de remboursement. Il peut différer du montant demandé en raison d’ajustements, comme des frais de remise en stock, des frais d’expédition ou un remboursement partiel pour des articles endommagés. Cet attribut est essentiel aux rapports financiers et au calcul de l’indicateur « Taux d’écart du montant remboursé ». Pourquoi est-ce important ? Représente l’incidence financière réelle du retour. Il est essentiel au rapprochement financier et à l’analyse de l’exactitude des remboursements. Où trouver ces données Cette valeur provient du champ « Total » de la transaction Credit Memo générée à partir de Return Authorization. Exemples 99.99140.000.00 | |||
| Service Department | Service ou équipe chargé du traitement du cas de retour à une étape donnée. | ||
| Description Cet attribut associe les activités du processus à un service précis, comme le service client, l’entrepôt ou les finances. Il est essentiel pour comprendre les transferts entre équipes et repérer les goulots d’étranglement propres à chaque service. En analysant le temps passé par les cas dans un service ou en attente de sa prise en charge, les organisations peuvent localiser les sources de retard et mieux répartir les ressources. Il s’agit d’une dimension principale du Dashboard « Performance du processus de retour par service ». Pourquoi est-ce important ? Permet d’analyser les performances par domaine fonctionnel et de repérer les retards lors des transferts entre services ainsi que les goulots d’étranglement propres à chaque service. Où trouver ces données Cet attribut peut être déduit de la fiche utilisateur ou employé associée à une activité, ou du champ « Department » de la transaction. Il est souvent configuré dans les fiches des employés NetSuite. Exemples EntrepôtService clientFinancesAssurance qualité | |||
| Statut du retour ReturnAuthorizationStatus | Statut actuel de l’autorisation de retour, par exemple « En attente d’approbation », « Approuvé » ou « Fermé ». | ||
| Description Cet attribut indique où en est le cas de retour dans son cycle de vie. Il est essentiel pour comprendre l’avancement des retours et segmenter les cas. Par exemple, l’analyse du temps passé au statut « En attente de réception » peut révéler des retards d’expédition, tandis qu’une longue attente au statut « En attente d’approbation » peut signaler un goulot d’étranglement interne. Cet attribut sert également à déterminer l’issue finale d’un retour, par exemple « Fermé » ou « Rejeté ». Pourquoi est-ce important ? Donne un aperçu de l’étape à laquelle se trouve chaque retour et permet d’analyser la répartition des cas, la durée des statuts et les résultats du processus. Où trouver ces données Correspond au champ « Status » ou à un champ équivalent de la fiche d’autorisation de retour NetSuite. Exemples En attente d’approbationEn attente de réceptionApprouvéRejetéFermé | |||
| Type de retour ReturnType | Catégorie du retour, déterminée par le motif indiqué par le client. | ||
| Description Le type de retour classe les retours selon leur motif, par exemple « Article défectueux », « Mauvaise taille », « Changement d’avis » ou « Non conforme à la description ». Cette classification est essentielle à l’analyse des causes profondes. En étudiant les indicateurs du processus selon les types de retour, une entreprise peut repérer des problèmes de qualité des produits, des descriptions inexactes ou des erreurs de préparation des commandes. Cet attribut est essentiel au Dashboard « Performance des retours par type et par canal ». Pourquoi est-ce important ? Aide à repérer les causes profondes des retours et à apporter des améliorations ciblées aux produits, à leur description marketing ou au processus de préparation des commandes, afin de réduire le volume des retours. Où trouver ces données Il s’agit généralement d’un champ personnalisé ou d’un champ de liste ou de fiche standard du formulaire d’autorisation de retour, où le motif du retour est indiqué. Exemples Produit défectueuxMauvais article expédiéInsatisfaction du clientMauvaise taille ou couleur | |||
| Automatisée IsAutomated | Indicateur booléen précisant si une activité a été exécutée automatiquement par le système. | ||
| Description Cet attribut indique si une activité a été exécutée par un utilisateur, un système automatisé, un script ou un flux de travail. Par exemple, l’événement initial « Autorisation de retour créée » peut être automatisé au moyen d’un portail client, tandis que l’activité « Article inspecté » est effectuée manuellement. Le suivi de l’automatisation permet de repérer les étapes manuelles susceptibles d’être automatisées et de mesurer les gains d’efficacité associés aux automatisations existantes. Pourquoi est-ce important ? Permet de distinguer les tâches manuelles des tâches automatisées, ce qui aide à repérer les possibilités d’automatisation et à mesurer les effets des initiatives de transformation numérique. Où trouver ces données Cet attribut peut être déduit de l’utilisateur associé à un événement. Dans NetSuite, les événements générés par le système sont souvent associés à un utilisateur système ou à un identifiant de script particulier. Exemples truefalse | |||
| Canal de retour ReturnChannel | Canal par lequel l’achat initial a été effectué ou le retour demandé. | ||
| Description Le canal de retour indique l’origine du retour, par exemple « En ligne », « En magasin » ou « Place de marché ». Les processus de retour, les coûts et les attentes des clients peuvent varier selon le canal. L’analyse des performances par canal aide les entreprises à optimiser chaque processus, à répartir efficacement les ressources et à comprendre les problèmes propres à chaque canal. Cet attribut est essentiel au Dashboard « Performance des retours par type et par canal ». Pourquoi est-ce important ? Permet de comparer les performances des différents canaux de vente et de repérer les inefficacités ou les bonnes pratiques propres à la demande et au traitement des retours. Où trouver ces données Ces informations proviennent souvent de la fiche Sales Order d’origine associée au retour. Elles peuvent être enregistrées dans un champ « Channel » ou « Location ». Exemples Boutique en ligneMagasinPlace de marché AmazonCommande par téléphone | |||
| Conforme au SLA IsSlaCompliant | Indicateur calculé qui précise si le remboursement a été traité dans le délai cible du SLA. | ||
| Description Cet attribut booléen est calculé en comparant l’horodatage « Remboursement traité » à la « Date cible du SLA de remboursement ». Si le remboursement a été traité au plus tard à la date cible, la valeur est vraie ; sinon, elle est fausse. Cet indicateur simplifie la création de rapports et de Dashboards de conformité, comme le Dashboard « Suivi du respect du SLA de remboursement », et sert au calcul de l’indicateur « Taux de respect du SLA de remboursement ». Pourquoi est-ce important ? Fournit un résultat clair, oui ou non, sur le respect du SLA pour chaque cas. Il est ainsi facile de suivre, de présenter et d’analyser les taux de conformité au fil du temps. Où trouver ces données Cet attribut est calculé lors de la transformation des données ou dans l’outil de Process Mining. La logique est la suivante : Exemples truefalse | |||
| Date cible du SLA de remboursement RefundSlaTargetDate | Date limite à laquelle le remboursement doit être traité, conformément aux accords de niveau de service. | ||
| Description La date cible du SLA de remboursement est un horodatage calculé qui représente l’engagement pris envers le client concernant le traitement de son remboursement. Elle est généralement obtenue en ajoutant une période prédéfinie, par exemple 5 jours ouvrés, à un événement clé tel que « Article reçu » ou « Remboursement approuvé ». Cet attribut est essentiel au Dashboard « Suivi du respect du SLA de remboursement » et à l’indicateur « Taux de respect du SLA de remboursement », qui permettent de mesurer les résultats par rapport aux engagements pris. Pourquoi est-ce important ? Permet de mesurer les résultats par rapport aux engagements pris envers les clients, ce qui est important pour préserver leur satisfaction et leur confiance. Où trouver ces données Cette date ne correspond généralement pas à un champ standard. Elle doit être calculée en ajoutant une période de SLA prédéfinie, par exemple 5 jours, à un horodatage clé comme la date de réception de l’article. Exemples 2023-11-01T23:59:59Z2023-11-05T23:59:59Z2023-11-10T23:59:59Z | |||
| Écart du montant du remboursement RefundAmountDiscrepancy | Différence calculée entre le montant du remboursement demandé et le montant effectivement remboursé. | ||
| Description Cet indicateur est calculé en soustrayant le montant réel du remboursement du montant demandé. Une valeur différente de zéro signale un ajustement effectué au cours du processus, par exemple pour tenir compte des frais de remise en stock ou d’articles endommagés. Cet attribut sert à analyser l’indicateur « Taux d’écart du montant remboursé » et à repérer les cas présentant des ajustements financiers importants qui nécessitent un examen. Pourquoi est-ce important ? Met en évidence les ajustements financiers effectués lors du traitement des retours. Il permet d’analyser les causes des écarts et de vérifier leur cohérence et leur justification. Où trouver ces données Il s’agit d’un attribut calculé. Formule : Exemples 0.0010.00-5.00 | |||
| État du retour ReturnCondition | État constaté lors de l’inspection de l’article retourné, par exemple « Neuf », « Endommagé » ou « Usagé ». | ||
| Description Cet attribut consigne le résultat de l’inspection physique de l’article retourné. Son état détermine les étapes suivantes : remboursement intégral, remise en stock ou mise au rebut. Le Dashboard « Qualité de l’évaluation de l’état des retours » analyse la cohérence et les délais de traitement de cette évaluation. Ces éléments sont essentiels au rapprochement financier et à la gestion des stocks. Pourquoi est-ce important ? Influe directement sur le résultat financier du retour et sur les opérations de stock qui suivent. Des évaluations incohérentes peuvent entraîner des pertes financières et des reprises du processus. Où trouver ces données Il s’agit probablement d’un champ personnalisé de l’enregistrement Item Receipt ou Return Authorization, renseigné par le personnel de l’entrepôt lors de l’inspection. Exemples Revient à la venteEndommagé, dans son emballageUsagé, en bon étatPièces manquantes | |||
| ID client CustomerId | Identifiant unique du client qui demande le retour. | ||
| Description L’identifiant client relie une transaction de retour à un client précis. Il permet d’analyser les retours par client, par exemple pour repérer ceux qui en effectuent fréquemment, ce qui peut révéler une insatisfaction ou une fraude. Il permet également de segmenter les performances du processus selon le type ou la valeur du client, afin de donner la priorité aux comptes stratégiques. Pourquoi est-ce important ? Permet d’analyser les comportements de retour à l’échelle du client et de segmenter le processus selon des attributs tels que le segment ou la valeur vie client. Où trouver ces données Il s’agit du champ « Customer » ou « Entity » dans l’en-tête de l’enregistrement Return Authorization de NetSuite. Exemples CUST-001CUST-002CUST-003 | |||
| Identifiant du produit ProductIdentifier | Identifiant unique du produit retourné, par exemple son SKU ou son numéro d’article. | ||
| Description Cet attribut identifie l’article concerné par le retour. L’analyse des retours par produit est essentielle pour repérer les articles fréquemment retournés, ce qui peut signaler des défauts de qualité, des descriptions insuffisantes ou d’autres problèmes. Ces données permettent d’étudier en détail les performances des produits et d’éclairer les décisions relatives à leur développement, à leur approvisionnement et à leur commercialisation. Pourquoi est-ce important ? Relie les données du processus de retour à des produits précis, ce qui permet d’analyser les causes profondes des problèmes liés aux produits et de réduire le taux global de retour. Où trouver ces données Cet attribut figure dans la sous-liste « Items » de la fiche d’autorisation de retour. Il correspond au champ « Item ». Exemples SKU-TEE-BL-LPROD-00543ITEM-987123 | |||
| Montant du remboursement demandé RequestedRefundAmount | Montant du remboursement initialement demandé ou prévu pour le retour. | ||
| Description Cet attribut enregistre le montant du remboursement prévu au début du processus. Il correspond généralement au prix d’achat initial des articles retournés et sert de référence pour le comparer au montant effectivement remboursé. L’indicateur « Taux d’écart du montant remboursé » compare directement cette valeur au montant réel du remboursement afin de détecter les différences liées aux frais de remise en stock, aux remboursements partiels ou à d’autres ajustements. Pourquoi est-ce important ? Fournit une référence pour l’analyse financière, en permettant de suivre les écarts entre les montants prévus et réels des remboursements et d’en déterminer les causes. Où trouver ces données Cette valeur est calculée à partir des champs « Amount » ou « Rate » des lignes de la transaction Return Authorization. Exemples 99.99150.0025.50 | |||
| Respect de la politique de retour ReturnPolicyAdherence | Indique si le retour respecte la politique de retour définie par l’entreprise. | ||
| Description Cet attribut booléen ou catégoriel indique si un retour répond à tous les critères prédéfinis, notamment le délai de retour, l’état de l’article et la preuve d’achat. Il sert à surveiller la conformité et à gérer les exceptions. Le Dashboard « Exceptions au respect de la politique de retour » s’appuie sur cet attribut pour mettre en évidence les cas qui nécessitent un examen ou un traitement particulier, afin de limiter les risques et d’assurer une application cohérente des règles. Pourquoi est-ce important ? Aide à surveiller et à faire respecter la politique de retour, à réduire les risques financiers liés aux retours non conformes et à garantir un traitement équitable et cohérent. Où trouver ces données Il s’agirait presque certainement d’un champ personnalisé, éventuellement une case à cocher ou une liste, dans l’enregistrement Return Authorization, géré au moyen d’un flux de travail. Exemples ConformeNon conforme, délai dépasséException approuvée | |||
Activités du traitement des retours et des remboursements
| Activité | Description | ||
|---|---|---|---|
| Article reçu | Cette activité marque la réception physique de l’article retourné à l’entrepôt ou au centre de traitement. Dans NetSuite, elle est explicitement enregistrée par la création d’une transaction Item Receipt liée à l’autorisation de retour d’origine. | ||
| Pourquoi est-ce important ? Cette étape marque le passage des actions du client au traitement interne. Le délai entre « Retour approuvé » et « Article reçu » mesure la rapidité du retour côté client, tandis que le délai qui suit reflète l’efficacité du traitement interne. Où trouver ces données Cet événement correspond à l’horodatage de création de la transaction ItemReceipt. Cette fiche est directement liée à la ReturnAuthorization à l’origine du retour. Données à recueillir Date de création de la transaction ItemReceipt dans NetSuite, liée à la RA. Type d’événement explicit | |||
| Autorisation de retour approuvée | Cette activité correspond à l’approbation officielle de la demande de retour du client par un employé, ce qui permet au processus de se poursuivre. Elle est généralement déduite d’un changement du champ de statut de la fiche d’autorisation de retour, par exemple de « En attente d’approbation » à « En attente de réception ». | ||
| Pourquoi est-ce important ? Le suivi de cette étape d’approbation est essentiel pour repérer les goulots d’étranglement lors de l’examen initial. Les retards à ce stade ont une incidence directe sur le délai nécessaire pour informer le client et recevoir l’article retourné. Où trouver ces données Déduit des notes système ou de l’historique du flux de travail de la fiche ReturnAuthorization, notamment lorsque le champ « Status » est mis à jour avec un statut approuvé, par exemple « En attente de réception ». Données à recueillir Détecter le passage de la fiche ReturnAuthorization à l’état « Approuvé ». Type d’événement inferred | |||
| Autorisation de retour clôturée | Cette dernière activité marque la clôture administrative du cas de retour, une fois le traitement terminé. Elle est déduite du changement final du statut de la fiche d’autorisation de retour vers « Fermé ». | ||
| Pourquoi est-ce important ? En tant que point final du processus, cette activité est essentielle pour calculer les temps de cycle de bout en bout et repérer les cas qui restent ouverts longtemps après le traitement du remboursement. Où trouver ces données Déduit des notes système ou de l’historique du flux de travail de la fiche ReturnAuthorization, lorsque le champ « Status » est mis à jour avec son statut final, par exemple « Fermé ». Données à recueillir Détecter le passage de la fiche ReturnAuthorization à l’état « Fermé ». Type d’événement inferred | |||
| Autorisation de retour créée | Cette activité marque le début du processus de retour, lorsqu’un client demande à retourner un article. Dans NetSuite, elle est explicitement enregistrée par la création d’une nouvelle fiche d’autorisation de retour (RA), qui sert d’identifiant principal du cas. | ||
| Pourquoi est-ce important ? En tant que point de départ du processus, cette activité est essentielle pour mesurer le temps de cycle total des retours et analyser l’évolution du volume de demandes reçues. Où trouver ces données Cet événement correspond à l’horodatage de création de la fiche ReturnAuthorization dans NetSuite. La fiche contient généralement le nom de l’utilisateur, la date et le statut initial, par exemple « En attente d’approbation ». Données à recueillir Date de création de la transaction ReturnAuthorization dans NetSuite. Type d’événement explicit | |||
| Avoir créé | Cette activité indique le début du volet financier du retour, avec la création d’un avoir. Ce document précise le montant à rembourser au client et est créé à partir de l’autorisation de retour, une fois l’article reçu et approuvé. | ||
| Pourquoi est-ce important ? La création de l’avoir constitue une étape financière importante. Le délai entre la réception de l’article et la création de l’avoir révèle l’efficacité du processus, de l’inspection à l’émission de l’avoir. Où trouver ces données Cet événement correspond à l’horodatage de création de la transaction CreditMemo. Le champ « Created From » de l’avoir renvoie à la ReturnAuthorization correspondante. Données à recueillir Date de création de la transaction CreditMemo dans NetSuite. Type d’événement explicit | |||
| Remboursement traité | Cette étape correspond au règlement financier final, lorsque les fonds sont restitués au client. Elle est explicitement enregistrée par la création d’une transaction Customer Refund générée à partir de l’avoir. | ||
| Pourquoi est-ce important ? Cette activité est essentielle pour mesurer le respect des SLA et la satisfaction client. Le délai entre « Avoir approuvé » et « Remboursement traité » reflète directement la rapidité du service de trésorerie ou des finances. Où trouver ces données Cet événement correspond à l’horodatage de création de la transaction CustomerRefund. Le champ « Created From » de cette transaction renvoie à la CreditMemo correspondante. Données à recueillir Date de création de la transaction CustomerRefund dans NetSuite. Type d’événement explicit | |||
| Article inspecté | Cette activité conceptuelle correspond à la fin de l’inspection physique de l’article retourné, qui vise à en évaluer l’état. NetSuite ne disposant pas d’objet standard « Inspection », cet événement est généralement déduit d’un champ personnalisé ou d’une mise à jour de statut sur l’autorisation de retour ou la réception d’article. | ||
| Pourquoi est-ce important ? L’inspection constitue souvent un goulot d’étranglement important. Le suivi de son délai d’exécution est essentiel pour analyser les performances des agents, la cohérence des décisions et les conséquences sur l’approbation du remboursement. Où trouver ces données Une analyse du système est nécessaire. L’événement peut être déduit de la modification d’un champ personnalisé « Statut de l’inspection » sur la fiche ReturnAuthorization. Il peut aussi s’agir d’une opération hors ligne qui n’est pas enregistrée. Données à recueillir Déduit de la modification d’un champ de statut personnalisé sur l’autorisation de retour ou la réception d’article. Type d’événement inferred | |||
| Autorisation de retour rejetée | Cet événement correspond à la décision de refuser la demande de retour d’un client, souvent en raison du non-respect des politiques. Il est déduit d’un changement du statut de la fiche d’autorisation de retour vers « Rejeté » ou « Fermé », sans traitement supplémentaire. | ||
| Pourquoi est-ce important ? L’analyse des rejets permet de repérer les motifs récurrents des demandes de retour non conformes et d’améliorer la communication avec les clients ainsi que la clarté des politiques. Il s’agit d’un écart important par rapport au parcours nominal. Où trouver ces données Déduit des notes système ou de l’historique du flux de travail de la fiche ReturnAuthorization, lorsque le champ « Status » est mis à jour avec le statut final « Rejeté ». Données à recueillir Détecter le passage de la fiche ReturnAuthorization à l’état « Rejeté ». Type d’événement inferred | |||
| Avoir approuvé | Cet événement correspond à l’approbation officielle de l’avoir, souvent requise pour les remboursements importants ou dans le cadre des contrôles financiers. Il est déduit d’un changement du statut de la fiche d’avoir, indiquant que celui-ci peut être imputé ou payé. | ||
| Pourquoi est-ce important ? Lorsque l’approbation financière est requise, cette étape peut constituer un goulot d’étranglement important. L’analyse de sa durée aide à optimiser les contrôles financiers sans retarder les remboursements des clients. Où trouver ces données Déduit des notes système de la fiche CreditMemo, notamment lorsque le champ de statut d’approbation passe de « En attente d’approbation » à « Approuvé » ou « Ouvert ». Données à recueillir Détecter le passage de la transaction CreditMemo à l’état « Approuvé ». Type d’événement inferred | |||
| Avoir imputé | Cette activité correspond à une solution de remplacement au remboursement en espèces : l’avoir est imputé sur une facture client ouverte. Elle est déduite du lien « Applied To » sur l’avoir, qui indique que le crédit a été utilisé. | ||
| Pourquoi est-ce important ? Il est important de distinguer les remboursements en espèces des imputations d’avoirs pour l’analyse financière. Cette voie correspond à une issue différente d’un remboursement direct. Où trouver ces données Déduit des notes système ou des fiches associées à la CreditMemo, notamment lorsqu’elle est liée à une transaction Invoice pour compenser le solde du client. Données à recueillir Détecter l’imputation d’une CreditMemo sur une transaction Invoice. Type d’événement inferred | |||
| Client informé | Cette activité correspond à l’envoi d’une notification au client pour l’informer d’une mise à jour importante du statut, par exemple l’approbation, la réception de l’article ou le traitement du remboursement. Elle est généralement déduite de l’horodatage d’un courriel généré par le système et consigné dans l’onglet de communication de la fiche. | ||
| Pourquoi est-ce important ? Une communication rapide contribue à la satisfaction client. Mesurer le délai entre une étape importante et la notification du client permet de repérer les lacunes dans son expérience. Où trouver ces données Une analyse du système est nécessaire. L’événement est enregistré à partir de l’horodatage d’un courriel sortant ou d’une note utilisateur dans le sous-onglet Communication de la ReturnAuthorization ou de la CreditMemo. Données à recueillir Horodatage d’un courriel ou d’une entrée du journal de communication liée au cas. Type d’événement inferred | |||
| Commande d’échange créée | Cette activité correspond à un échange : une nouvelle commande client est créée à la place d’un remboursement. L’événement est généralement enregistré par la création d’une Sales Order liée à l’autorisation de retour d’origine. | ||
| Pourquoi est-ce important ? Le suivi des échanges comme parcours distinct permet d’analyser les préférences des clients et de comparer l’efficacité du processus d’échange à celle du processus de remboursement. Il s’agit d’une variante courante et importante. Où trouver ces données Cet événement correspond à l’horodatage de création d’une nouvelle transaction SalesOrder. Le lien avec la ReturnAuthorization peut se trouver dans un champ standard ou personnalisé, ce qui nécessite une analyse du système. Données à recueillir Date de création d’une SalesOrder liée à la ReturnAuthorization. Type d’événement explicit | |||
Guides d’extraction
Étapes
- Accédez à la création d’une recherche enregistrée : Connectez-vous à NetSuite. Accédez à Reports > New Search. Sur la page New Saved Search, cliquez sur « Transaction ».
- Définissez les critères principaux : Dans la configuration de la recherche enregistrée, sous l’onglet « Criteria » et le sous-onglet « Standard », définissez les filtres suivants pour isoler les enregistrements d’autorisation de retour :
TypeestReturn AuthorizationMain LineestYes- Ajoutez un filtre
Date Createdet définissez la période souhaitée, par exemple « au cours des 3 derniers mois ». Cette étape est essentielle pour maîtriser le volume de données.
- Configurez les colonnes de résultats pour les attributs : Accédez à l’onglet « Results ». Ajoutez les champs suivants, qui deviendront les attributs de votre journal d’événements. Utilisez « Custom Label » pour les renommer et en faciliter la compréhension.
- ID de cas :
Document NumberouTranID(libellé personnalisé : ReturnCaseId) - État du retour :
Status(libellé personnalisé : ReturnAuthorizationStatus) - Agent de traitement :
Created Byou un champ personnalisé, le cas échéant (libellé personnalisé : ProcessingAgent) - Service :
Department(libellé personnalisé : Department) - Type de retour : un champ personnalisé, par exemple
[Your Return Reason Field](libellé personnalisé : ReturnType) - Montant du remboursement :
Amount(libellé personnalisé : ActualRefundAmount)
- ID de cas :
- Ajoutez des colonnes de formule pour les horodatages des événements : Il s’agit de l’étape la plus importante. Pour chacune des 12 activités, ajoutez une colonne « Formula (Date/Time) ». Chaque formule utilise une instruction CASE pour renvoyer un horodatage uniquement si l’événement correspondant a eu lieu. Consultez la section « query » pour connaître les formules exactes à utiliser pour chaque activité.
- Ajoutez des colonnes statiques : Ajoutez deux colonnes « Formula (Text) » aux résultats :
- Pour
SourceSystem, utilisez la formule :'NetSuite'. - Pour
LastDataUpdate, utilisez une formule correspondant à la date d’exécution, par exemple{today}. Pour obtenir un horodatage précis, indiquez l’heure de l’export.
- Pour
- Enregistrez et exportez la recherche : Donnez à votre recherche un nom explicite, par exemple « Extraction des retours ProcessMind ». Cliquez sur « Save & Run ». Lorsque les résultats s’affichent, cliquez sur l’icône d’exportation et choisissez « CSV ».
- Transformez les données en journal d’événements : Le fichier CSV exporté sera au format « large », avec une ligne par cas de retour et plusieurs colonnes correspondant aux horodatages des événements. Vous devez le transformer en journal d’événements au format « long ». Pour ce faire, utilisez un outil comme Power Query de Microsoft Excel (annulation du pivot des colonnes), Python ou un autre outil de script.
- Pour chaque ligne du fichier CSV, créez plusieurs lignes, une pour chaque colonne d’horodatage d’événement non vide.
- Le tableau transformé doit comporter des colonnes telles que
ReturnCaseId,ActivityNameetEventTimestamp.ActivityNamereprend l’en-tête de la colonne d’horodatage d’origine, par exemple « Autorisation de retour créée », etEventTimestampcontient la valeur de cette colonne.
- Préparez le fichier à importer : Vérifiez que le fichier CSV final comporte les en-têtes requis :
ReturnCaseId,ActivityName,EventTimestamp,SourceSystem,LastDataUpdate, ainsi que les attributs recommandés. Le fichier est prêt à être importé dans ProcessMind.
Configuration
- Type de recherche : La recherche enregistrée doit être une recherche
Transaction. - Période : Il est essentiel d’appliquer un filtre de période au champ
Date Createdde Return Authorization. Une période de 3 à 6 mois est recommandée pour trouver un équilibre entre l’exhaustivité des données et les performances. - Filtre principal : La recherche doit être filtrée sur
Typeégal àReturn AuthorizationetMain Lineégal àOui, afin d’obtenir un seul enregistrement initial par cas de retour. - Champs personnalisés : La précision de cette extraction, en particulier pour des événements conceptuels comme « Article inspecté » ou des attributs comme « Type de retour », dépend largement de l’utilisation de champs personnalisés dans les enregistrements de transaction de votre organisation. Les formules fournies contiennent des espaces réservés tels que
{custbody_...}, à adapter à votre configuration NetSuite. - Autorisations utilisateur : L’utilisateur qui exécute la recherche doit disposer d’un accès en lecture à tous les types de transaction concernés : Return Authorization, Item Receipt, Credit Memo, Customer Refund et Sales Order.
- Performances : Pour les comptes qui enregistrent un très grand nombre de retours, cette recherche complète peut être lente. Envisagez de l’exécuter en dehors des heures de pointe ou de programmer l’export automatique vers le classeur de fichiers.
a Exemple de requête config
This configuration represents the settings in the NetSuite Saved Search UI. The 'Results' tab should be configured with the following columns and formulas.
**Criteria Tab:**
* `Type` = `Return Authorization`
* `Main Line` = `true`
* `Date Created` = `[Specify Desired Date Range]`
**Results Tab (Columns):**
| Custom Label | Field / Formula Type | Formula / Field ID |
|---|---|---|
| `ReturnCaseId` | Formula (Text) | `{tranid}` |
| `SourceSystem` | Formula (Text) | `'NetSuite'` |
| `LastDataUpdate` | Formula (Date/Time) | `{today}` |
| `ReturnAuthorizationStatus` | Field | `Status` |
| `ProcessingAgent` | Field | `Created By` |
| `Department` | Field | `Department` |
| `ReturnType` | Field | `{custbody_return_reason}` |
| `ActualRefundAmount` | Field | `Amount` |
| `CycleTime` | Formula (Numeric) | `CASE WHEN {status} = 'Closed' THEN {lastmodifieddate} - {datecreated} ELSE NULL END` |
| `Activity_ReturnAuthorizationCreated` | Field | `Date Created` |
| `Activity_ReturnAuthorizationApproved` | Formula (Date/Time) | `MIN(CASE WHEN {systemnotes.newvalue} = 'Pending Receipt' AND {systemnotes.field} = 'Status' THEN {systemnotes.date} ELSE NULL END)` |
| `Activity_ReturnAuthorizationRejected` | Formula (Date/Time) | `MIN(CASE WHEN {systemnotes.newvalue} = 'Rejected' AND {systemnotes.field} = 'Status' THEN {systemnotes.date} ELSE NULL END)` |
| `Activity_ItemReceived` | Formula (Date/Time) | `{applyingtransaction.trandate}` |
| `Activity_ItemInspected` | Formula (Date/Time) | `CASE WHEN {custbody_inspection_status} = 'Complete' THEN {custbody_inspection_date} ELSE NULL END` |
| `Activity_CreditMemoCreated` | Formula (Date/Time) | `{createdfrom.trandate}` |
| `Activity_CreditMemoApproved` | Formula (Date/Time) | `MIN(CASE WHEN {createdfrom.systemnotes.newvalue} = 'Open' AND {createdfrom.systemnotes.field} = 'Status' THEN {createdfrom.systemnotes.date} ELSE NULL END)` |
| `Activity_RefundProcessed` | Formula (Date/Time) | `{createdfrom.appliedtotransaction.trandate}` |
| `Activity_CreditMemoApplied` | Formula (Date/Time) | `CASE WHEN {createdfrom.status} = 'Fully Applied' AND {createdfrom.appliedtotransaction.type} = 'Invoice' THEN {createdfrom.appliedtotransaction.date} ELSE NULL END` |
| `Activity_ExchangeOrderCreated` | Formula (Date/Time) | `{custbody_exchange_order.trandate}` |
| `Activity_CustomerNotified` | Formula (Date/Time) | `MAX({messages.messagedate})` |
| `Activity_ReturnAuthorizationClosed` | Formula (Date/Time) | `MIN(CASE WHEN {systemnotes.newvalue} = 'Closed' AND {systemnotes.field} = 'Status' THEN {systemnotes.date} ELSE NULL END)` | Étapes
- Activez SuiteAnalytics Connect : Vérifiez que votre compte NetSuite dispose d’une licence SuiteAnalytics Connect. Un administrateur doit activer la fonctionnalité sous Setup > Company > Enable Features > Analytics.
- Attribuez les autorisations utilisateur : Accordez au rôle de l’utilisateur de connexion l’autorisation « SuiteAnalytics Connect ». Cet utilisateur doit également disposer d’un accès en lecture à tous les enregistrements interrogés, notamment les transactions, les employés et les clients.
- Installez le pilote ODBC : Téléchargez et installez le pilote ODBC NetSuite adapté à votre système d’exploitation depuis la page de téléchargement de SuiteAnalytics Connect dans NetSuite.
- Configurez le DSN : Configurez un nom de source de données (DSN) sur la machine qui exécutera la requête. Saisissez votre source de données de service, le nom d’hôte du serveur, le port, l’identifiant de rôle, l’identifiant de compte et vos identifiants de connexion.
- Connectez votre client SQL : Utilisez un client SQL, tel que DBeaver ou Microsoft SQL Server Management Studio, pour vous connecter à NetSuite à l’aide du DSN configuré.
- Préparez la requête SQL : Copiez la requête SQL fournie dans votre client. Elle est conçue pour extraire tous les événements clés du processus de retour et de remboursement.
- Personnalisez la requête : Modifiez les valeurs de remplacement dans la requête. Vous devez au minimum mettre à jour la période dans l’expression de table commune (CTE)
ReturnAuthorizations. Vous devrez peut-être aussi adapter les noms des champs personnalisés, commeCUSTBODY_RETURN_TYPE, ou les valeurs d’état pour qu’ils correspondent à votre configuration NetSuite. - Exécutez la requête : Lancez la requête SQL personnalisée sur la réplique de la base de données NetSuite. La durée d’exécution peut varier selon la période et le volume de données.
- Vérifiez et exportez les données : Une fois la requête terminée, vérifiez que les résultats semblent corrects. Exportez l’ensemble des résultats dans un fichier CSV.
- Préparez le fichier à importer : Vérifiez que les en-têtes du fichier CSV correspondent aux attributs requis :
ReturnCaseId,ActivityName,EventTimestamp,SourceSystem,LastDataUpdate, etc. Assurez-vous que la colonneEventTimestamputilise un format de date et d’heure cohérent. Le fichier est prêt à être importé dans ProcessMind.
Configuration
- Prérequis : Une licence NetSuite avec le module complémentaire SuiteAnalytics Connect est nécessaire. L’utilisateur qui établit la connexion doit avoir un rôle doté de l’autorisation « SuiteAnalytics Connect » et d’un accès en lecture aux enregistrements de transactions, d’entités et d’employés.
- Configuration de la source de données : Vous devez configurer un DSN (nom de source de données) à l’aide du pilote ODBC NetSuite. Vous aurez besoin de votre identifiant de compte, de votre identifiant de rôle et de vos identifiants de connexion. Dans les environnements de production, l’hôte de service est généralement
odbcserver.netsuite.com. - Filtrage par période : Il est essentiel d’appliquer un filtre de période à la CTE initiale qui sélectionne les autorisations de retour. Sans filtre, la requête tentera d’extraire toutes les données de retour et risque d’être très lente ou d’expirer. Pour une première analyse, une période de 3 à 6 mois est recommandée.
- Principaux types de transactions : La requête porte sur plusieurs types de transactions principaux : ReturnAuthorization, ItemReceipt, CreditMemo, CustomerRefund et SalesOrd (pour les échanges). Vérifiez que votre processus utilise ces objets standard.
- Dépendances aux champs personnalisés : Les activités telles que « Article inspecté » et les attributs comme « Type de retour » sont souvent consignés dans des champs personnalisés. La requête fournie utilise des espaces réservés tels que
CUSTBODY_INSPECTION_STATUSetCUSTBODY_RETURN_TYPE. Identifiez les identifiants de champs personnalisés correspondants dans votre système, puis adaptez la requête. - Considérations relatives aux performances : Cette requête complexe comporte plusieurs jointures et une structure
UNION ALLvolumineuse. Exécutez-la en dehors des heures de pointe pour limiter son incidence sur les performances du système. Pour les très grands ensembles de données, envisagez de lancer la requête sur des périodes plus courtes, puis de regrouper les résultats.
a Exemple de requête sql
WITH ReturnAuthorizations AS (
SELECT
T.TRANSACTION_ID AS ReturnCaseId,
T.TRANDATE
FROM
TRANSACTION T
WHERE
T.TYPE = 'ReturnAuthorization'
AND T.TRANDATE BETWEEN TO_DATE('[YYYY-MM-DD]', 'YYYY-MM-DD') AND TO_DATE('[YYYY-MM-DD]', 'YYYY-MM-DD')
)
SELECT
RA.ReturnCaseId AS "ReturnCaseId",
'Return Authorization Created' AS "ActivityName",
T.CREATED_DATE AS "EventTimestamp",
'NetSuite' AS "SourceSystem",
CURRENT_TIMESTAMP AS "LastDataUpdate",
T.STATUS AS "ReturnAuthorizationStatus",
E.full_name AS "ProcessingAgent",
D.full_name AS "Department",
T.CUSTBODY_RETURN_TYPE AS "ReturnType",
NULL AS "ActualRefundAmount",
NULL AS "CycleTime"
FROM TRANSACTION T
INNER JOIN ReturnAuthorizations RA ON T.TRANSACTION_ID = RA.ReturnCaseId
LEFT JOIN EMPLOYEE E ON T.CREATED_BY_ID = E.EMPLOYEE_ID
LEFT JOIN DEPARTMENT D ON E.DEPARTMENT_ID = D.DEPARTMENT_ID
UNION ALL
SELECT
RA.ReturnCaseId,
'Return Authorization Approved' AS "ActivityName",
SN.NOTE_DATE AS "EventTimestamp",
'NetSuite' AS "SourceSystem",
CURRENT_TIMESTAMP AS "LastDataUpdate",
SN.NEW_VALUE AS "ReturnAuthorizationStatus",
E.full_name AS "ProcessingAgent",
D.full_name AS "Department",
T.CUSTBODY_RETURN_TYPE AS "ReturnType",
NULL AS "ActualRefundAmount",
NULL AS "CycleTime"
FROM SYSTEM_NOTES SN
INNER JOIN TRANSACTION T ON SN.TRANSACTION_ID = T.TRANSACTION_ID
INNER JOIN ReturnAuthorizations RA ON T.TRANSACTION_ID = RA.ReturnCaseId
LEFT JOIN EMPLOYEE E ON SN.AUTHOR_ID = E.EMPLOYEE_ID
LEFT JOIN DEPARTMENT D ON E.DEPARTMENT_ID = D.DEPARTMENT_ID
WHERE SN.FIELD = 'TRANSACTION.STATUS' AND SN.NEW_VALUE = 'Pending Receipt'
UNION ALL
SELECT
RA.ReturnCaseId,
'Return Authorization Rejected' AS "ActivityName",
SN.NOTE_DATE AS "EventTimestamp",
'NetSuite' AS "SourceSystem",
CURRENT_TIMESTAMP AS "LastDataUpdate",
SN.NEW_VALUE AS "ReturnAuthorizationStatus",
E.full_name AS "ProcessingAgent",
D.full_name AS "Department",
T.CUSTBODY_RETURN_TYPE AS "ReturnType",
NULL AS "ActualRefundAmount",
NULL AS "CycleTime"
FROM SYSTEM_NOTES SN
INNER JOIN TRANSACTION T ON SN.TRANSACTION_ID = T.TRANSACTION_ID
INNER JOIN ReturnAuthorizations RA ON T.TRANSACTION_ID = RA.ReturnCaseId
LEFT JOIN EMPLOYEE E ON SN.AUTHOR_ID = E.EMPLOYEE_ID
LEFT JOIN DEPARTMENT D ON E.DEPARTMENT_ID = D.DEPARTMENT_ID
WHERE SN.FIELD = 'TRANSACTION.STATUS' AND SN.NEW_VALUE IN ('Rejected', 'Closed')
UNION ALL
SELECT
RA.ReturnCaseId,
'Item Received' AS "ActivityName",
IR.CREATED_DATE AS "EventTimestamp",
'NetSuite' AS "SourceSystem",
CURRENT_TIMESTAMP AS "LastDataUpdate",
T_RA.STATUS AS "ReturnAuthorizationStatus",
E.full_name AS "ProcessingAgent",
D.full_name AS "Department",
T_RA.CUSTBODY_RETURN_TYPE AS "ReturnType",
NULL AS "ActualRefundAmount",
NULL AS "CycleTime"
FROM TRANSACTION IR
INNER JOIN TRANSACTION T_RA ON IR.CREATED_FROM_ID = T_RA.TRANSACTION_ID
INNER JOIN ReturnAuthorizations RA ON T_RA.TRANSACTION_ID = RA.ReturnCaseId
LEFT JOIN EMPLOYEE E ON IR.CREATED_BY_ID = E.EMPLOYEE_ID
LEFT JOIN DEPARTMENT D ON E.DEPARTMENT_ID = D.DEPARTMENT_ID
WHERE IR.TYPE = 'ItemReceipt'
UNION ALL
SELECT
RA.ReturnCaseId,
'Item Inspected' AS "ActivityName",
SN.NOTE_DATE AS "EventTimestamp",
'NetSuite' AS "SourceSystem",
CURRENT_TIMESTAMP AS "LastDataUpdate",
T.STATUS AS "ReturnAuthorizationStatus",
E.full_name AS "ProcessingAgent",
D.full_name AS "Department",
T.CUSTBODY_RETURN_TYPE AS "ReturnType",
NULL AS "ActualRefundAmount",
NULL AS "CycleTime"
FROM SYSTEM_NOTES SN
INNER JOIN TRANSACTION T ON SN.TRANSACTION_ID = T.TRANSACTION_ID
INNER JOIN ReturnAuthorizations RA ON T.TRANSACTION_ID = RA.ReturnCaseId
LEFT JOIN EMPLOYEE E ON SN.AUTHOR_ID = E.EMPLOYEE_ID
LEFT JOIN DEPARTMENT D ON E.DEPARTMENT_ID = D.DEPARTMENT_ID
WHERE SN.FIELD = 'TRANSACTION.CUSTBODY_INSPECTION_STATUS' AND SN.NEW_VALUE = 'Completed'
UNION ALL
SELECT
RA.ReturnCaseId,
'Credit Memo Created' AS "ActivityName",
CM.CREATED_DATE AS "EventTimestamp",
'NetSuite' AS "SourceSystem",
CURRENT_TIMESTAMP AS "LastDataUpdate",
T_RA.STATUS AS "ReturnAuthorizationStatus",
E.full_name AS "ProcessingAgent",
D.full_name AS "Department",
T_RA.CUSTBODY_RETURN_TYPE AS "ReturnType",
NULL AS "ActualRefundAmount",
NULL AS "CycleTime"
FROM TRANSACTION CM
INNER JOIN TRANSACTION T_RA ON CM.CREATED_FROM_ID = T_RA.TRANSACTION_ID
INNER JOIN ReturnAuthorizations RA ON T_RA.TRANSACTION_ID = RA.ReturnCaseId
LEFT JOIN EMPLOYEE E ON CM.CREATED_BY_ID = E.EMPLOYEE_ID
LEFT JOIN DEPARTMENT D ON E.DEPARTMENT_ID = D.DEPARTMENT_ID
WHERE CM.TYPE = 'CreditMemo'
UNION ALL
SELECT
RA.ReturnCaseId,
'Credit Memo Approved' AS "ActivityName",
SN.NOTE_DATE AS "EventTimestamp",
'NetSuite' AS "SourceSystem",
CURRENT_TIMESTAMP AS "LastDataUpdate",
SN.NEW_VALUE AS "ReturnAuthorizationStatus",
E.full_name AS "ProcessingAgent",
D.full_name AS "Department",
T_RA.CUSTBODY_RETURN_TYPE AS "ReturnType",
NULL AS "ActualRefundAmount",
NULL AS "CycleTime"
FROM SYSTEM_NOTES SN
INNER JOIN TRANSACTION CM ON SN.TRANSACTION_ID = CM.TRANSACTION_ID
INNER JOIN TRANSACTION T_RA ON CM.CREATED_FROM_ID = T_RA.TRANSACTION_ID
INNER JOIN ReturnAuthorizations RA ON T_RA.TRANSACTION_ID = RA.ReturnCaseId
LEFT JOIN EMPLOYEE E ON SN.AUTHOR_ID = E.EMPLOYEE_ID
LEFT JOIN DEPARTMENT D ON E.DEPARTMENT_ID = D.DEPARTMENT_ID
WHERE CM.TYPE = 'CreditMemo' AND SN.FIELD = 'TRANSACTION.APPROVAL_STATUS' AND SN.NEW_VALUE = 'Approved'
UNION ALL
SELECT
RA.ReturnCaseId,
'Refund Processed' AS "ActivityName",
REF.CREATED_DATE AS "EventTimestamp",
'NetSuite' AS "SourceSystem",
CURRENT_TIMESTAMP AS "LastDataUpdate",
T_RA.STATUS AS "ReturnAuthorizationStatus",
E.full_name AS "ProcessingAgent",
D.full_name AS "Department",
T_RA.CUSTBODY_RETURN_TYPE AS "ReturnType",
ABS(REF.TOTAL) AS "ActualRefundAmount",
NULL AS "CycleTime"
FROM TRANSACTION REF
INNER JOIN TRANSACTION CM ON REF.APPLIED_TO_TRANSACTION_ID = CM.TRANSACTION_ID
INNER JOIN TRANSACTION T_RA ON CM.CREATED_FROM_ID = T_RA.TRANSACTION_ID
INNER JOIN ReturnAuthorizations RA ON T_RA.TRANSACTION_ID = RA.ReturnCaseId
LEFT JOIN EMPLOYEE E ON REF.CREATED_BY_ID = E.EMPLOYEE_ID
LEFT JOIN DEPARTMENT D ON E.DEPARTMENT_ID = D.DEPARTMENT_ID
WHERE REF.TYPE = 'CustomerRefund'
UNION ALL
SELECT
RA.ReturnCaseId,
'Credit Memo Applied' AS "ActivityName",
SN.NOTE_DATE AS "EventTimestamp",
'NetSuite' AS "SourceSystem",
CURRENT_TIMESTAMP AS "LastDataUpdate",
SN.NEW_VALUE AS "ReturnAuthorizationStatus",
E.full_name AS "ProcessingAgent",
D.full_name AS "Department",
T_RA.CUSTBODY_RETURN_TYPE AS "ReturnType",
NULL AS "ActualRefundAmount",
NULL AS "CycleTime"
FROM SYSTEM_NOTES SN
INNER JOIN TRANSACTION CM ON SN.TRANSACTION_ID = CM.TRANSACTION_ID
INNER JOIN TRANSACTION T_RA ON CM.CREATED_FROM_ID = T_RA.TRANSACTION_ID
INNER JOIN ReturnAuthorizations RA ON T_RA.TRANSACTION_ID = RA.ReturnCaseId
LEFT JOIN EMPLOYEE E ON SN.AUTHOR_ID = E.EMPLOYEE_ID
LEFT JOIN DEPARTMENT D ON E.DEPARTMENT_ID = D.DEPARTMENT_ID
WHERE CM.TYPE = 'CreditMemo' AND SN.FIELD = 'TRANSACTION.STATUS' AND SN.NEW_VALUE = 'Fully Applied'
UNION ALL
SELECT
RA.ReturnCaseId,
'Exchange Order Created' AS "ActivityName",
SO.CREATED_DATE AS "EventTimestamp",
'NetSuite' AS "SourceSystem",
CURRENT_TIMESTAMP AS "LastDataUpdate",
T_RA.STATUS AS "ReturnAuthorizationStatus",
E.full_name AS "ProcessingAgent",
D.full_name AS "Department",
T_RA.CUSTBODY_RETURN_TYPE AS "ReturnType",
NULL AS "ActualRefundAmount",
NULL AS "CycleTime"
FROM TRANSACTION SO
INNER JOIN TRANSACTION T_RA ON SO.CREATED_FROM_ID = T_RA.TRANSACTION_ID
INNER JOIN ReturnAuthorizations RA ON T_RA.TRANSACTION_ID = RA.ReturnCaseId
LEFT JOIN EMPLOYEE E ON SO.CREATED_BY_ID = E.EMPLOYEE_ID
LEFT JOIN DEPARTMENT D ON E.DEPARTMENT_ID = D.DEPARTMENT_ID
WHERE SO.TYPE = 'SalesOrd'
UNION ALL
SELECT
RA.ReturnCaseId,
'Customer Notified' AS "ActivityName",
MSG.MESSAGE_DATE AS "EventTimestamp",
'NetSuite' AS "SourceSystem",
CURRENT_TIMESTAMP AS "LastDataUpdate",
T.STATUS AS "ReturnAuthorizationStatus",
E.full_name AS "ProcessingAgent",
D.full_name AS "Department",
T.CUSTBODY_RETURN_TYPE AS "ReturnType",
NULL AS "ActualRefundAmount",
NULL AS "CycleTime"
FROM MESSAGES MSG
INNER JOIN TRANSACTION T ON MSG.TRANSACTION_ID = T.TRANSACTION_ID
INNER JOIN ReturnAuthorizations RA ON T.TRANSACTION_ID = RA.ReturnCaseId
LEFT JOIN EMPLOYEE E ON MSG.AUTHOR_ID = E.EMPLOYEE_ID
LEFT JOIN DEPARTMENT D ON E.DEPARTMENT_ID = D.DEPARTMENT_ID
WHERE MSG.INCOMING = 'F'
UNION ALL
SELECT
RA.ReturnCaseId,
'Return Authorization Closed' AS "ActivityName",
SN.NOTE_DATE AS "EventTimestamp",
'NetSuite' AS "SourceSystem",
CURRENT_TIMESTAMP AS "LastDataUpdate",
SN.NEW_VALUE AS "ReturnAuthorizationStatus",
E.full_name AS "ProcessingAgent",
D.full_name AS "Department",
T.CUSTBODY_RETURN_TYPE AS "ReturnType",
NULL AS "ActualRefundAmount",
NULL AS "CycleTime"
FROM SYSTEM_NOTES SN
INNER JOIN TRANSACTION T ON SN.TRANSACTION_ID = T.TRANSACTION_ID
INNER JOIN ReturnAuthorizations RA ON T.TRANSACTION_ID = RA.ReturnCaseId
LEFT JOIN EMPLOYEE E ON SN.AUTHOR_ID = E.EMPLOYEE_ID
LEFT JOIN DEPARTMENT D ON E.DEPARTMENT_ID = D.DEPARTMENT_ID
WHERE T.TYPE = 'ReturnAuthorization' AND SN.FIELD = 'TRANSACTION.STATUS' AND SN.NEW_VALUE LIKE '%Closed%'; Prêt à commencer ?
Commencez à améliorer le traitement des retours et des remboursements à l’aide de ce modèle de données. Optimisez dès aujourd’hui vos flux de travail NetSuite pour gagner en efficacité et améliorer la satisfaction client.
Optimisez dès maintenant les retours et les remboursements pour améliorer l’efficacité de NetSuite
Réduisez de 30 % le temps de cycle des retours dans NetSuite. Commencez dès aujourd’hui à améliorer vos opérations.
Aucune carte bancaire requise • Configuration en quelques minutes