Datatemplate voor retouren en terugbetalingen
Datatemplate voor retouren en terugbetalingen
- Aanbevolen attributen om te verzamelen
- Belangrijke activiteiten om te volgen
- Uitleg over data-extractie uit NetSuite
Attributen voor retouren en terugbetalingen
| Naam | Beschrijving | ||
|---|---|---|---|
| Activiteitsnaam ActivityName | De naam van een specifieke bedrijfsgebeurtenis of stap in het retourproces, zoals 'Artikel geïnspecteerd' of 'Terugbetaling verwerkt'. | ||
| Beschrijving De activiteitsnaam beschrijft een afzonderlijke stap of mijlpaal in de levenscyclus van retouren en terugbetalingen. De events worden op timestamp gesorteerd om het procesverloop op te bouwen. Door de volgorde en frequentie van activiteiten te analyseren, ontdek je de meest voorkomende procesroutes, bottlenecks tussen stappen en herstelwerk of herhaalde activiteiten. Voorbeelden zijn 'Retourautorisatie aangemaakt', 'Artikel ontvangen' en 'Creditnota goedgekeurd'. Waarom dit belangrijk is Dit attribuut bepaalt de processtappen. Het is nodig om het procesmodel te visualiseren, variaties in het procesverloop te analyseren en bottlenecks of herstelwerk op te sporen. Waar vind je dit? Dit attribuut wordt doorgaans afgeleid uit statuswijzigingen van transactierecords, zoals Return Authorizations en Credit Memos, of uit specifieke gebruikersacties die zijn vastgelegd in systeemnotities of aangepaste eventlogs. Voorbeelden Retourautorisatie aangemaaktArtikel ontvangenArtikel geïnspecteerdTerugbetaling verwerktRetourautorisatie gesloten | |||
| Eventtimestamp EventTimestamp | De exacte datum en tijd waarop de activiteit plaatsvond. Dit vormt de chronologische basis van het proces. | ||
| Beschrijving De eventtimestamp legt het exacte moment van een activiteit vast. Deze data is nodig om events in de juiste volgorde te zetten en alle tijdsanalyses uit te voeren. Je gebruikt de timestamp om de tijd tussen activiteiten, de totale doorlooptijd per case en wachttijden te berekenen. Die gegevens zijn nodig om prestaties te volgen, bottlenecks te analyseren en naleving van SLA’s te controleren. Timestamps moeten kloppen om betrouwbare inzichten uit process mining te halen. Waarom dit belangrijk is Dit attribuut geeft de chronologische volgorde van events aan. Die volgorde is nodig om het procesverloop te ontdekken en prestatiemaatstaven zoals doorlooptijden en wachttijden te berekenen. Waar vind je dit? Deze informatie komt doorgaans uit de velden 'Date Created' of 'Last Modified Date' van NetSuite-records, of uit timestamps in de sublijst System Notes van transacties. Voorbeelden 2023-10-26T10:00:00Z2023-10-26T14:35:10Z2023-10-27T09:12:05Z | |||
| Retourcase-ID ReturnCaseId | De unieke identificatie van één retour- of terugbetalingscase van een klant. Hiermee zijn alle bijbehorende activiteiten gekoppeld, van de start tot de afsluiting. | ||
| Beschrijving De Return Case ID is de belangrijkste identificatie om het volledige verloop van een retour te volgen. Elke unieke ID hoort bij één retourautorisatie en maakt het mogelijk alle bijbehorende events te analyseren, zoals ontvangst van het artikel, inspectie en verwerking van de terugbetaling. In process mining is deze ID nodig om het volledige procesverloop van elke retour te reconstrueren, doorlooptijden te berekenen en afwijkingen per case op te sporen. Waarom dit belangrijk is Dit is het belangrijkste attribuut voor process mining. Het verbindt alle afzonderlijke events tot samenhangende procesinstanties van begin tot eind, zodat je procesverloop en prestaties kunt analyseren. Waar vind je dit? Dit is doorgaans de Internal ID of Transaction ID van de Return Authorization-record in NetSuite. Voorbeelden RMA-0012345RMA-0012346RMA-0012347 | |||
| Bronsysteem SourceSystem | Het systeem waaruit de data is opgehaald. Dit wordt gebruikt om de herkomst van de data te volgen. | ||
| Beschrijving Dit attribuut geeft aan waar de procesdata vandaan komt. In dit geval is dat doorgaans 'NetSuite'. Het bronsysteem vermelden is belangrijk als data uit meerdere systemen wordt samengevoegd. Zo blijft de herkomst van de data duidelijk en traceerbaar. Waarom dit belangrijk is Geeft aan waar de data vandaan komt. Dat is belangrijk voor datagovernance, het oplossen van problemen en situaties waarin data uit meerdere systemen wordt gecombineerd voor een volledig beeld van het proces. Waar vind je dit? Dit is een vaste waarde ('NetSuite') die doorgaans wordt toegevoegd tijdens het ophalen en transformeren van de data. Voorbeelden NetSuiteNetSuite ERP | |||
| Laatste data-update LastDataUpdate | De timestamp die aangeeft wanneer de data voor dit proces voor het laatst is vernieuwd of bijgewerkt. | ||
| Beschrijving Dit attribuut registreert wanneer de dataset voor het laatst vanuit het bronsysteem is bijgewerkt. Deze metadata laat zien hoe actueel de analyse is. Door dit in dashboards te tonen, weten gebruikers hoe recent de data is en kunnen ze hun beslissingen daarop afstemmen. Waarom dit belangrijk is Laat zien hoe actueel de data is. Zo kunnen gebruikers de analyse op waarde schatten en begrijpen hoe relevant die is voor de huidige bedrijfsvoering. Waar vind je dit? Deze timestamp wordt gegenereerd en toegevoegd tijdens het ETL-proces voor het ophalen, transformeren en laden van data. Voorbeelden 2024-05-21T02:00:00Z2024-05-22T02:00:00Z | |||
| Afdeling Department | De afdeling of het team dat in een bepaalde fase verantwoordelijk is voor de afhandeling van de retourcase. | ||
| Beschrijving Dit attribuut koppelt procesactiviteiten aan een afdeling, zoals 'Klantenservice', 'Magazijn' of 'Financiën'. Het is belangrijk om overdrachten tussen teams te begrijpen en bottlenecks per afdeling op te sporen. Door te analyseren hoelang cases bij een afdeling blijven of op die afdeling wachten, kunnen organisaties vertragingen opsporen en de inzet van middelen verbeteren. Dit is een belangrijke dimensie voor het dashboard 'Prestaties retourproces per afdeling'. Waarom dit belangrijk is Maakt het mogelijk om de procesprestaties per afdeling te analyseren en vertragingen bij overdrachten tussen afdelingen en bottlenecks per afdeling op te sporen. Waar vind je dit? Dit kan worden afgeleid uit de gebruikers- of medewerkersrecord die bij een activiteit hoort, of uit een veld 'Department' op de transactie zelf. Vaak wordt dit ingesteld in medewerkersrecords in NetSuite. Voorbeelden MagazijnKlantenserviceFinanciënKwaliteitscontrole | |||
| Medewerker die de retour verwerkt ProcessingAgent | De medewerker of gebruiker die een specifieke activiteit in het retourproces heeft uitgevoerd. | ||
| Beschrijving De medewerker die de retour verwerkt, is degene die verantwoordelijk is voor een bepaalde taak, zoals een retour goedkeuren of een artikel inspecteren. Dit attribuut is belangrijk voor prestatieanalyses op gebruikersniveau. Je kunt ermee zien welke medewerkers goed presteren, waar extra training nodig is en hoe het werk over het team is verdeeld. Activiteiten per medewerker analyseren is belangrijk voor het dashboard 'Prestaties retourproces per afdeling'. Waarom dit belangrijk is Maakt analyses mogelijk van individuele en teamprestaties, werkverdeling en trainingsbehoeften. Dit heeft rechtstreeks invloed op de efficiëntie van de bedrijfsvoering. Waar vind je dit? Deze informatie kan komen uit velden zoals 'Created By' en 'Approved By', of uit gebruikersvelden in de sublijst System Notes van NetSuite-transacties. Voorbeelden Alice JohnsonBob WilliamsCharlie Brown | |||
| Retourstatus ReturnAuthorizationStatus | De huidige status van de retourautorisatie, zoals 'Pending Approval', 'Approved' of 'Closed'. | ||
| Beschrijving Dit attribuut geeft de huidige status van de retourcase in de levenscyclus aan. Het is belangrijk om de voortgang van retouren te volgen en cases in groepen in te delen. Een analyse van de tijd in de status 'Pending Receipt' kan bijvoorbeeld vertragingen bij de verzending aan het licht brengen. Een lange tijd in 'Pending Approval' kan wijzen op een interne bottleneck. De status helpt ook om de uitkomst van een retour vast te stellen, zoals 'Closed' of 'Rejected'. Waarom dit belangrijk is Laat zien waar elke retour zich in het proces bevindt. Zo kun je de verdeling van cases, de tijd in elke status en de procesuitkomsten analyseren. Waar vind je dit? Dit komt overeen met het veld 'Status' of een vergelijkbaar veld op de NetSuite Return Authorization-record. Voorbeelden In afwachting van goedkeuringIn afwachting van ontvangstGoedgekeurdAfgewezenGesloten | |||
| Retourtype ReturnType | De indeling van de retour op basis van de reden die de klant heeft opgegeven. | ||
| Beschrijving Het retourtype deelt retouren in op basis van de reden, zoals 'Defect artikel', 'Verkeerde maat', 'Van gedachten veranderd' of 'Niet zoals beschreven'. Deze indeling is belangrijk voor oorzaakanalyse. Door procesmaatstaven per retourtype te analyseren, kan een bedrijf problemen met productkwaliteit, onjuiste productbeschrijvingen of fouten bij de afhandeling opsporen. Dit attribuut is belangrijk voor het dashboard 'Retourprestaties per type en kanaal'. Waarom dit belangrijk is Helpt de oorzaken van retouren op te sporen. Zo kun je producten, marketingbeschrijvingen of het afhandelingsproces gericht verbeteren en het aantal retouren terugdringen. Waar vind je dit? Dit is doorgaans een aangepast veld of een standaardlijst- of recordveld op het Return Authorization-formulier waarin de retourreden wordt vastgelegd. Voorbeelden Defect productVerkeerd artikel verzondenOntevreden klantVerkeerde maat/kleur | |||
| Werkelijk terugbetaald bedrag ActualRefundAmount | Het uiteindelijke geldbedrag dat daadwerkelijk aan de klant is terugbetaald. | ||
| Beschrijving Dit attribuut bevat het bedrag dat aan de klant is gecrediteerd of terugbetaald, zoals vastgelegd op de Credit Memo- of refundtransactie. Het bedrag kan afwijken van het aangevraagde bedrag door bijvoorbeeld herbevoorradingskosten, verzendkosten of gedeeltelijke terugbetalingen voor beschadigde artikelen. Dit attribuut is belangrijk voor financiële rapportages en voor de berekening van de KPI ‘Afwijkingspercentage terugbetalingen’. Waarom dit belangrijk is Geeft de werkelijke financiële impact van de retour weer. Deze waarde is nodig voor financiële afstemming en om de nauwkeurigheid van terugbetalingen te analyseren. Waar vind je dit? Deze waarde komt uit het veld ‘Total’ van de Credit Memo-transactie die op basis van de Return Authorization is aangemaakt. Voorbeelden 99.99140.000.00 | |||
| Aangevraagd terug te betalen bedrag RequestedRefundAmount | Het geldbedrag dat aanvankelijk voor de retour is aangevraagd of verwacht. | ||
| Beschrijving Dit attribuut bevat het verwachte terug te betalen bedrag aan het begin van het proces. Meestal is dit gebaseerd op de oorspronkelijke aankoopprijs van de geretourneerde artikelen. Je kunt dit bedrag vergelijken met het uiteindelijke terugbetaalde bedrag. De KPI ‘Afwijkingspercentage terugbetalingen’ vergelijkt deze waarde met het werkelijke terugbetaalde bedrag. Zo worden verschillen zichtbaar die bijvoorbeeld ontstaan door herbevoorradingskosten, gedeeltelijke terugbetalingen of andere correcties. Waarom dit belangrijk is Biedt een uitgangspunt voor financiële analyses. Zo kun je verschillen tussen verwachte en werkelijke terugbetalingen volgen en achterhalen waarom bedragen zijn aangepast. Waar vind je dit? Deze waarde is afgeleid van de velden ‘Amount’ of ‘Rate’ op de regelitems van de Return Authorization-transactie. Voorbeelden 99.99150.0025.50 | |||
| Afwijking in terugbetalingsbedrag RefundAmountDiscrepancy | Het berekende verschil tussen het aangevraagde en het werkelijk terugbetaalde bedrag. | ||
| Beschrijving Deze metriek wordt berekend door het werkelijk terugbetaalde bedrag af te trekken van het aangevraagde bedrag. Een waarde anders dan nul betekent dat het bedrag tijdens het proces is aangepast, bijvoorbeeld vanwege herbevoorradingskosten of beschadigde artikelen. Met dit attribuut analyseer je de KPI ‘Afwijkingspercentage terugbetalingen’ en markeer je cases met grote financiële aanpassingen voor nader onderzoek. Waarom dit belangrijk is Maakt financiële aanpassingen tijdens het retourproces zichtbaar. Zo kun je analyseren waarom verschillen ontstaan en of ze consistent en terecht zijn. Waar vind je dit? Dit is een berekend attribuut. De formule is: Voorbeelden 0.0010.00-5.00 | |||
| Automatisch uitgevoerd IsAutomated | Een booleaanse aanduiding die laat zien of een activiteit automatisch door het systeem is uitgevoerd. | ||
| Beschrijving Dit attribuut geeft aan of een activiteit is uitgevoerd door een gebruiker of door een geautomatiseerd systeem, script of workflow. Zo kan de gebeurtenis ‘Retourautorisatie aangemaakt’ automatisch via een klantportaal plaatsvinden, terwijl ‘Artikel geïnspecteerd’ handmatig wordt uitgevoerd. Door automatisering te volgen, zie je welke handmatige stappen je kunt automatiseren en wat bestaande automatiseringen opleveren. Waarom dit belangrijk is Helpt onderscheid te maken tussen handmatige en geautomatiseerde taken. Dat is nodig om kansen voor automatisering te vinden en het effect van digitale transformatie te meten. Waar vind je dit? Dit kun je afleiden uit de gebruiker die aan een gebeurtenis is gekoppeld. Systeemgebeurtenissen in NetSuite zijn vaak gekoppeld aan een specifieke systeemgebruiker of script-ID. Voorbeelden truefalse | |||
| Klant-ID CustomerId | De unieke identificatie van de klant die de retour start. | ||
| Beschrijving De klant-ID koppelt een retourtransactie aan een specifieke klant. Zo kun je retourgedrag per klant analyseren, bijvoorbeeld om klanten met veel retouren te herkennen. Dat kan wijzen op ontevredenheid of fraude. Je kunt de procesprestaties ook uitsplitsen naar klanttype of klantwaarde en zo bepalen welke belangrijke klanten voorrang krijgen bij de service. Waarom dit belangrijk is Maakt analyse van retourgedrag per klant mogelijk en helpt het proces in te delen op basis van klantkenmerken, zoals segment of klantwaarde gedurende de hele relatie. Waar vind je dit? Dit is het veld ‘Customer’ of ‘Entity’ in de kop van de Return Authorization-record in NetSuite. Voorbeelden CUST-001CUST-002CUST-003 | |||
| Naleving van beleid ReturnPolicyAdherence | Geeft aan of de retour voldoet aan het vastgestelde retourbeleid van het bedrijf. | ||
| Beschrijving Dit booleaanse of categorische attribuut geeft aan of een retour aan alle vooraf bepaalde criteria voldoet, zoals de retourtermijn, de staat van het artikel en het aankoopbewijs. Je gebruikt het om compliance te volgen en uitzonderingen te beheren. Het dashboard ‘Uitzonderingen op naleving van het retourbeleid’ gebruikt dit attribuut om cases te markeren die extra aandacht of beoordeling nodig hebben. Zo beperk je risico’s en pas je de regels consistent toe. Waarom dit belangrijk is Helpt bij het bewaken en handhaven van het retourbeleid. Zo beperk je het financiële risico van retouren die niet aan de regels voldoen en zorg je voor een eerlijke, consistente afhandeling. Waar vind je dit? Dit is vrijwel zeker een aangepast veld, bijvoorbeeld een selectievakje of keuzelijst, op de Return Authorization-record. Het wordt beheerd via een workflow. Voorbeelden Voldoet aan beleidVoldoet niet, buiten de termijnUitzondering goedgekeurd | |||
| Productidentificatie ProductIdentifier | De unieke identificatie van het geretourneerde product, zoals de SKU of het artikelnummer. | ||
| Beschrijving Dit attribuut geeft aan om welk artikel het bij de retour gaat. Door retouren per product te analyseren, kun je artikelen met veel retouren opsporen. Dat kan wijzen op kwaliteitsproblemen, onduidelijke beschrijvingen of andere oorzaken. Met deze data kun je de prestaties per product nader analyseren en beslissingen over productontwikkeling, inkoop en marketing onderbouwen. Waarom dit belangrijk is Koppelt retourprocesdata aan specifieke producten. Zo kun je productgerelateerde problemen analyseren en het totale aantal retouren helpen verlagen. Waar vind je dit? Dit staat in de sublijst 'Items' van de Return Authorization-record en komt overeen met het veld 'Item'. Voorbeelden SKU-TEE-BL-LPROD-00543ITEM-987123 | |||
| Retourconditie ReturnCondition | De beoordeelde staat van het geretourneerde artikel na inspectie, bijvoorbeeld ‘Nieuw’, ‘Beschadigd’ of ‘Gebruikt’. | ||
| Beschrijving Dit attribuut legt de uitkomst van de fysieke inspectie van het geretourneerde artikel vast. De conditie bepaalt wat er daarna gebeurt, bijvoorbeeld of de klant het volledige bedrag terugkrijgt, het artikel weer op voorraad komt of wordt afgevoerd. Het dashboard ‘Kwaliteit van de retourbeoordeling’ richt zich op de consistentie en doorlooptijden van deze beoordeling. Die gegevens zijn ook belangrijk voor de financiële afstemming en het voorraadbeheer. Waarom dit belangrijk is Heeft direct invloed op de financiële uitkomst van de retour en de vervolgstappen voor de voorraad. Inconsistente beoordelingen kunnen leiden tot financieel verlies en herstelwerk. Waar vind je dit? Dit is waarschijnlijk een aangepast veld op de Item Receipt-record of de Return Authorization-record, dat magazijnmedewerkers tijdens de inspectie invullen. Voorbeelden Geschikt voor wederverkoopBeschadigd, in doosGebruikt, goede staatOnderdelen ontbreken | |||
| Retourkanaal ReturnChannel | Het kanaal waar de oorspronkelijke aankoop is gedaan of waar de retour is gestart. | ||
| Beschrijving Het retourkanaal geeft aan waar de retour vandaan komt, bijvoorbeeld 'Online', 'In de winkel' of 'Marketplace'. Per kanaal kunnen het retourproces, de kosten en de verwachtingen van klanten verschillen. Door prestaties per kanaal te analyseren, kunnen bedrijven elk proces verbeteren, middelen doelgericht inzetten en kanaalspecifieke problemen opsporen. Dit is een belangrijk attribuut voor het dashboard 'Retourprestaties per type en kanaal'. Waarom dit belangrijk is Maakt het mogelijk om prestaties tussen verschillende verkoopkanalen te vergelijken. Zo komen inefficiënties en goede werkwijzen aan het licht die te maken hebben met de manier waarop retouren worden gestart en afgehandeld. Waar vind je dit? Deze informatie komt vaak uit de oorspronkelijke Sales Order-record die aan de retour is gekoppeld. Mogelijk staat ze in een veld 'Channel' of 'Location'. Voorbeelden WebwinkelWinkelAmazon MarketplaceTelefonische bestelling | |||
| Uiterste datum voor terugbetaling volgens SLA RefundSlaTargetDate | De datum waarop de terugbetaling volgens de serviceafspraken verwerkt moet zijn. | ||
| Beschrijving De uiterste datum voor terugbetaling volgens SLA is een berekende timestamp die de afspraak met de klant over de verwerking van de terugbetaling vastlegt. Meestal wordt deze berekend door een vooraf bepaalde termijn, zoals vijf werkdagen, op te tellen bij een belangrijke gebeurtenis, bijvoorbeeld ‘Artikel ontvangen’ of ‘Terugbetaling goedgekeurd’. Dit attribuut is nodig voor het dashboard ‘Naleving van terugbetalings-SLA’s’ en de KPI ‘Percentage terugbetalingen binnen SLA’. Zo kan het bedrijf de prestaties toetsen aan de gemaakte afspraken. Waarom dit belangrijk is Maakt het mogelijk om de prestaties ten opzichte van afspraken met klanten te meten. Dat helpt om klanten tevreden te houden en hun vertrouwen te behouden. Waar vind je dit? Dit is meestal geen standaardveld. Je moet de vooraf bepaalde SLA-termijn, bijvoorbeeld vijf dagen, optellen bij een belangrijke timestamp, zoals de datum waarop het artikel is ontvangen. Voorbeelden 2023-11-01T23:59:59Z2023-11-05T23:59:59Z2023-11-10T23:59:59Z | |||
| Voldoet aan SLA IsSlaCompliant | Een berekende aanduiding die laat zien of de terugbetaling binnen de vastgestelde SLA-termijn is verwerkt. | ||
| Beschrijving Dit booleaanse attribuut wordt berekend door de timestamp van ‘Terugbetaling verwerkt’ te vergelijken met de uiterste datum voor terugbetaling volgens SLA. Is de terugbetaling op of vóór die datum verwerkt, dan is de waarde waar. Anders is de waarde onwaar. Met deze aanduiding maak je eenvoudig compliance-rapporten en dashboards, zoals het dashboard ‘Naleving van terugbetalings-SLA’s’. Je gebruikt de waarde ook om de KPI ‘Percentage terugbetalingen binnen SLA’ te berekenen. Waarom dit belangrijk is Geeft per case een duidelijke uitkomst voor de SLA-prestaties. Zo kun je nalevingspercentages eenvoudig volgen, rapporteren en analyseren. Waar vind je dit? Dit attribuut wordt berekend tijdens de datatransformatie of in de process mining-tool. De logica is: Voorbeelden truefalse | |||
Activiteiten voor retouren en terugbetalingen
| Activiteit | Beschrijving | ||
|---|---|---|---|
| Artikel ontvangen | Deze activiteit markeert de fysieke ontvangst van het geretourneerde artikel in het magazijn of verwerkingscentrum. In NetSuite wordt dit expliciet vastgelegd door een Item Receipt-transactie aan te maken die is gekoppeld aan de oorspronkelijke Return Authorization. | ||
| Waarom dit belangrijk is Dit is een belangrijk moment waarop het proces overgaat van actie door de klant naar interne verwerking. De tijd tussen 'Return Approved' en 'Item Received' laat zien hoe snel klanten artikelen retourneren. De tijd daarna geeft inzicht in de interne efficiëntie. Waar vind je dit? Dit event is de timestamp waarop de ItemReceipt-transactie wordt aangemaakt. Deze record is rechtstreeks gekoppeld aan de oorspronkelijke ReturnAuthorization. Vastleggen Aanmaakdatum van de NetSuite-transactie ItemReceipt die aan de RA is gekoppeld. Gebeurtenistype explicit | |||
| Creditnota aangemaakt | Deze activiteit geeft aan dat de financiële afhandeling van de retour is gestart met het aanmaken van een Credit Memo. Dit document vermeldt het bedrag dat aan de klant wordt terugbetaald. Het wordt aangemaakt vanuit de Return Authorization nadat het artikel is ontvangen en goedgekeurd. | ||
| Waarom dit belangrijk is Het aanmaken van de Credit Memo is een belangrijk financieel moment. De tijd tussen ontvangst van het artikel en het aanmaken van de creditnota laat zien hoe efficiënt het proces van inspectie tot creditering verloopt. Waar vind je dit? Dit event is de timestamp waarop de CreditMemo-transactie wordt aangemaakt. Het veld 'Created From' op de Credit Memo verwijst naar de ReturnAuthorization. Vastleggen Aanmaakdatum van de NetSuite-transactie CreditMemo. Gebeurtenistype explicit | |||
| Retourautorisatie aangemaakt | Deze activiteit markeert het begin van het retourproces, wanneer een klant een artikel wil retourneren. In NetSuite wordt dit vastgelegd door een nieuwe Return Authorization (RA)-record aan te maken. Deze record is de belangrijkste identificatie voor de retourcase. | ||
| Waarom dit belangrijk is Als startpunt van het proces is deze activiteit nodig om de totale doorlooptijd van retouren te meten en het aantal binnenkomende retouraanvragen over tijd te analyseren. Waar vind je dit? Dit event is de timestamp waarop de ReturnAuthorization-record in NetSuite wordt aangemaakt. De gebruiker, datum en beginstatus, bijvoorbeeld 'Pending Approval', worden doorgaans in deze record vastgelegd. Vastleggen Aanmaakdatum van de NetSuite-transactie ReturnAuthorization. Gebeurtenistype explicit | |||
| Retourautorisatie gesloten | Dit is de laatste activiteit: de retourcase wordt administratief afgesloten nadat alle stappen zijn afgerond. Dit wordt afgeleid uit de laatste statuswijziging van de Return Authorization-record naar 'Closed'. | ||
| Waarom dit belangrijk is Als definitief eindpunt van het proces is deze activiteit nodig om de totale doorlooptijd te berekenen en cases op te sporen die lang open blijven nadat de terugbetaling is verwerkt. Waar vind je dit? Afgeleid uit de systeemnotities of workflowgeschiedenis van de ReturnAuthorization-record wanneer het veld 'Status' wordt gewijzigd in de definitieve eindstatus, zoals 'Closed'. Vastleggen Detecteer een statuswijziging van de ReturnAuthorization-record naar 'Closed'. Gebeurtenistype inferred | |||
| Retourautorisatie goedgekeurd | Deze activiteit staat voor de formele goedkeuring van het retourverzoek door een medewerker. Daarna kan het proces verder. Dit wordt doorgaans afgeleid uit een wijziging van het statusveld van de Return Authorization-record, bijvoorbeeld van 'Pending Approval' naar 'Pending Receipt'. | ||
| Waarom dit belangrijk is Door deze goedkeuringsstap te volgen, kun je bottlenecks in de eerste beoordelingsfase opsporen. Vertragingen hebben direct invloed op hoe snel de klant bericht krijgt en het artikel wordt ontvangen. Waar vind je dit? Afgeleid uit de systeemnotities of workflowgeschiedenis van de ReturnAuthorization-record, met name wanneer het veld 'Status' wordt gewijzigd in een goedgekeurde status, bijvoorbeeld 'Pending Receipt'. Vastleggen Detecteer een statuswijziging van de ReturnAuthorization-record naar 'Approved'. Gebeurtenistype inferred | |||
| Terugbetaling verwerkt | Dit is de laatste financiële stap: het geld wordt teruggestort aan de klant. Dit wordt expliciet vastgelegd door een Customer Refund-transactie aan te maken vanuit de Credit Memo. | ||
| Waarom dit belangrijk is Deze activiteit is belangrijk om naleving van de SLA en klanttevredenheid te meten. De tijd tussen 'Credit Memo Approved' en 'Refund Processed' laat rechtstreeks zien hoe snel de treasury- of financiële afdeling werkt. Waar vind je dit? Dit event is de timestamp waarop de CustomerRefund-transactie wordt aangemaakt. Het veld 'Created From' op deze transactie verwijst naar de CreditMemo. Vastleggen Aanmaakdatum van de NetSuite-transactie CustomerRefund. Gebeurtenistype explicit | |||
| Artikel geïnspecteerd | Deze conceptuele activiteit staat voor de afronding van de fysieke inspectie om de staat van het geretourneerde artikel te beoordelen. NetSuite heeft geen standaardobject 'Inspection'. Daarom wordt deze activiteit doorgaans afgeleid uit een aangepast veld of een statuswijziging op de Return Authorization of Item Receipt. | ||
| Waarom dit belangrijk is Inspectie is vaak een belangrijke bottleneck. Door de afrondingstijd te volgen, kun je de prestaties van medewerkers en de consistentie van beslissingen analyseren, en zien wat de invloed is op de daaropvolgende goedkeuring van de terugbetaling. Waar vind je dit? Hiervoor is systeemanalyse nodig. De activiteit kan worden afgeleid uit een wijziging van een aangepast veld 'Inspection Status' op de ReturnAuthorization-record. Het kan ook gaan om een offlineproces dat niet wordt vastgelegd. Vastleggen Afgeleid uit een wijziging van een aangepast statusveld op de Return Authorization of Item Receipt. Gebeurtenistype inferred | |||
| Creditnota goedgekeurd | Dit staat voor de formele goedkeuring van de creditnota. Die is vaak nodig bij hoge terugbetalingen of als onderdeel van financiële controles. De activiteit wordt afgeleid uit een statuswijziging van de Credit Memo-record, waaruit blijkt dat deze klaar is om te worden verrekend of uitbetaald. | ||
| Waarom dit belangrijk is Als financiële goedkeuring nodig is, kan deze stap een flinke bottleneck vormen. Door de doorlooptijd te analyseren, kun je financiële controles optimaliseren zonder de terugbetaling aan klanten te vertragen. Waar vind je dit? Afgeleid uit de systeemnotities van de CreditMemo-record, met name wanneer een goedkeuringsstatus wordt gewijzigd van 'Pending Approval' naar 'Approved' of 'Open'. Vastleggen Detecteer een statuswijziging van de CreditMemo-transactie naar 'Approved'. Gebeurtenistype inferred | |||
| Creditnota verrekend | Dit is een alternatief voor terugbetaling in geld: de creditnota wordt verrekend met een openstaande klantfactuur. Dit wordt afgeleid uit de link 'Applied To' op de Credit Memo, die aangeeft dat het tegoed is gebruikt. | ||
| Waarom dit belangrijk is Voor financiële analyses is het belangrijk om onderscheid te maken tussen terugbetalingen in geld en verrekeningen met een tegoed. Deze route is een andere manier om een retour af te handelen dan een rechtstreekse terugbetaling. Waar vind je dit? Afgeleid uit de systeemnotities of gerelateerde records van de CreditMemo, met name wanneer deze wordt gekoppeld aan een Invoice-transactie om het openstaande saldo van een klant te verlagen. Vastleggen Detecteer dat een CreditMemo wordt verrekend met een Invoice-transactie. Gebeurtenistype inferred | |||
| Klant op de hoogte gebracht | Dit staat voor een melding aan de klant over een belangrijke statuswijziging, zoals goedkeuring, ontvangst van het artikel of verwerking van de terugbetaling. Dit wordt doorgaans afgeleid uit de timestamp van een automatisch verstuurde e-mail die op het communicatietabblad van de record is vastgelegd. | ||
| Waarom dit belangrijk is Tijdige communicatie draagt bij aan klanttevredenheid. Door de tijd tussen een belangrijke processtap en de melding aan de klant te meten, ontdek je waar de klantervaring tekortschiet. Waar vind je dit? Hiervoor is systeemanalyse nodig. De activiteit wordt vastgelegd aan de hand van de timestamp van een uitgaande e-mail of gebruikersnotitie op het subtabblad Communication van de ReturnAuthorization of CreditMemo. Vastleggen Timestamp van een e-mail of communicatievermelding die aan de case is gekoppeld. Gebeurtenistype inferred | |||
| Omruilorder aangemaakt | Deze activiteit staat voor een omruiling waarbij een nieuwe verkooporder voor de klant wordt aangemaakt in plaats van een terugbetaling. Dit event wordt doorgaans vastgelegd wanneer een Sales Order wordt aangemaakt die is gekoppeld aan de oorspronkelijke Return Authorization. | ||
| Waarom dit belangrijk is Door omruilingen als aparte route te volgen, kun je klantvoorkeuren en de efficiëntie van het omruilproces vergelijken met die van het terugbetalingsproces. Dit is een veelvoorkomende en belangrijke variant. Waar vind je dit? Dit event is de timestamp waarop een nieuwe SalesOrder-transactie wordt aangemaakt. De koppeling met de ReturnAuthorization kan in een standaardveld of aangepast veld staan. Hiervoor is mogelijk systeemanalyse nodig. Vastleggen Aanmaakdatum van een SalesOrder die aan de ReturnAuthorization is gekoppeld. Gebeurtenistype explicit | |||
| Retourautorisatie afgewezen | Dit staat voor de beslissing om een retourverzoek af te wijzen, vaak omdat het niet aan het beleid voldoet. Dit event wordt afgeleid uit een statuswijziging van de Return Authorization-record naar 'Rejected' of 'Closed', zonder verdere verwerking. | ||
| Waarom dit belangrijk is Door afwijzingen te analyseren, ontdek je veelvoorkomende redenen waarom retourverzoeken niet aan het beleid voldoen. Die informatie kan helpen bij klantcommunicatie en het verduidelijken van het beleid. Dit is een belangrijke afwijking van de ideale route. Waar vind je dit? Afgeleid uit de systeemnotities of workflowgeschiedenis van de ReturnAuthorization-record wanneer het veld 'Status' wordt gewijzigd in de eindstatus 'Rejected'. Vastleggen Detecteer een statuswijziging van de ReturnAuthorization-record naar 'Rejected'. Gebeurtenistype inferred | |||
Extractiegidsen
Stappen
- Ga naar Saved Search maken: Log in bij NetSuite. Ga naar Reports > New Search. Klik op de pagina New Saved Search op ‘Transactie’.
- Stel de primaire criteria in: Ga op de instellingenpagina van Saved Search naar het tabblad ‘Criteria’ en het subtabblad ‘Standard’. Stel de volgende filters in om de retourautorisatierecords te selecteren:
TypeisReturn AuthorizationMain LineisYes- Voeg een filter voor
Date Createdtoe en stel het gewenste datumbereik in, bijvoorbeeld ‘binnen de afgelopen 3 maanden’. Zo houd je de hoeveelheid data beheersbaar.
- Stel de resultaatkolommen voor attributen in: Ga naar het tabblad ‘Results’. Voeg de volgende velden toe. Deze worden de attributen in je event log. Gebruik ‘Custom Label’ om de namen waar nodig duidelijker te maken.
- Case-ID:
Document NumberofTranID(Custom Label: ReturnCaseId) - Retourstatus:
Status(Custom Label: ReturnAuthorizationStatus) - Behandelaar:
Created Byof een aangepast veld, indien van toepassing (Custom Label: ProcessingAgent) - Afdeling:
Department(Custom Label: Department) - Retourtype: een aangepast veld, zoals
[Your Return Reason Field](Custom Label: ReturnType) - Terugbetalingsbedrag:
Amount(Custom Label: ActualRefundAmount)
- Case-ID:
- Voeg formulekolommen voor gebeurtenistimestamps toe: Dit is de belangrijkste stap. Voeg voor elk van de 12 activiteiten een kolom ‘Formula (Date/Time)’ toe. Elke formule gebruikt een CASE-statement en geeft alleen een timestamp terug als de betreffende gebeurtenis heeft plaatsgevonden. De exacte formules per activiteit staan in het gedeelte ‘query’.
- Voeg vaste kolommen toe: Voeg twee kolommen ‘Formula (Text)’ toe aan de resultaten:
- Gebruik voor
SourceSystemde formule:'NetSuite'. - Gebruik voor
LastDataUpdateeen formule met de uitvoerdatum, zoals{today}. Voor een exacte timestamp gebruik je het tijdstip waarop de export is gemaakt.
- Gebruik voor
- Sla de zoekopdracht op en exporteer de resultaten: Geef de zoekopdracht een duidelijke naam, zoals ‘ProcessMind Returns Extraction’. Klik op ‘Save & Run’. Klik zodra de resultaten verschijnen op het exportpictogram en kies ‘CSV’.
- Zet de data om naar een event log: Het geëxporteerde CSV-bestand heeft een ‘brede’ indeling, met één rij per retourcase en meerdere kolommen voor gebeurtenistimestamps. Je moet dit omzetten naar een ‘lange’ indeling voor het event log. Gebruik hiervoor bijvoorbeeld Microsoft Excel Power Query (Unpivot Columns), Python of een ander scriptprogramma.
- Maak voor elke rij in het CSV-bestand meerdere nieuwe rijen aan, één voor elke kolom met een gebeurtenistimestamp.
- De nieuwe tabel bevat kolommen zoals
ReturnCaseId,ActivityNameenEventTimestamp. De waarde voorActivityNamekomt uit de kop van de oorspronkelijke timestampkolom (bijvoorbeeld ‘Retourautorisatie aangemaakt’).EventTimestampbevat de waarde uit die kolom.
- Maak het bestand klaar om te uploaden: Controleer of de uiteindelijke CSV de vereiste kolomkoppen bevat:
ReturnCaseId,ActivityName,EventTimestamp,SourceSystem,LastDataUpdateen eventuele aanbevolen attributen. Het bestand is nu klaar om naar ProcessMind te uploaden.
Configuratie
- Type zoekopdracht: De opgeslagen zoekopdracht moet van het type
Transactiezijn. - Datumbereik: Stel een filter in voor het veld
Date Createdvan de retourautorisatie. Een periode van 3 tot 6 maanden is aan te raden voor een goede balans tussen volledige data en prestaties. - Primair filter: Filter op
TypeisReturn AuthorizationenMain LineisJa, zodat er één eerste record per retourcase wordt opgenomen. - Aangepaste velden: De nauwkeurigheid van deze extractie hangt sterk af van het gebruik van aangepaste velden in transactierecords. Dat geldt vooral voor gebeurtenissen zoals 'Item Inspected' en attributen zoals 'Return Type'. De formules bevatten tijdelijke aanduidingen zoals
{custbody_...}. Pas deze aan op de NetSuite-configuratie. - Gebruikersrechten: De gebruiker die de zoekopdracht uitvoert, heeft leesrechten nodig voor alle betrokken transactietypen: Return Authorization, Item Receipt, Credit Memo, Customer Refund en Sales Order.
- Prestaties: Bij accounts met veel retouren kan deze uitgebreide zoekopdracht traag zijn. Voer de zoekopdracht zo nodig buiten piekuren uit of plan automatische export naar de file cabinet.
a Voorbeeldquery 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)` | Stappen
- Schakel SuiteAnalytics Connect in: Controleer of je NetSuite-account een SuiteAnalytics Connect-licentie heeft. Een beheerder moet de functie inschakelen via Setup > Company > Enable Features > Analytics.
- Ken gebruikersmachtigingen toe: Geef de rol van de gebruiker die verbinding maakt de machtiging ‘SuiteAnalytics Connect’. Deze gebruiker moet ook leesrechten hebben voor alle records die worden opgevraagd, zoals transacties, medewerkers en klanten.
- Installeer het ODBC-stuurprogramma: Download en installeer op de NetSuite-downloadpagina voor SuiteAnalytics Connect het juiste ODBC-stuurprogramma voor je besturingssysteem.
- Configureer de DSN: Stel een Data Source Name (DSN) in op de computer waarop je de query uitvoert. Vul de Service Data Source, Server Hostname, Port, Role ID, Account ID en inloggegevens in.
- Maak verbinding met je SQL-client: Gebruik een SQL-client, zoals DBeaver of Microsoft SQL Server Management Studio, om via de ingestelde DSN verbinding te maken met NetSuite.
- Bereid de SQL-query voor: Kopieer de meegeleverde SQL-query naar je client. De query haalt alle belangrijke gebeurtenissen in het proces voor retouren en terugbetalingen op.
- Pas de query aan: Vervang de tijdelijke waarden in de query. Pas minimaal het datumbereik in de Common Table Expression (CTE)
ReturnAuthorizationsaan. Mogelijk moet je ook namen van aangepaste velden, zoalsCUSTBODY_RETURN_TYPE, of specifieke statuswaarden aanpassen aan je NetSuite-configuratie. - Voer de query uit: Voer de aangepaste SQL-query uit op de NetSuite-databasereplica. De uitvoeringstijd hangt af van het datumbereik en de hoeveelheid data.
- Controleer en exporteer de data: Controleer na afloop of de resultaten er goed uitzien. Exporteer de volledige resultatenset naar een CSV-bestand.
- Maak het bestand klaar om te uploaden: Controleer of de kolomkoppen in het CSV-bestand overeenkomen met de vereiste attributen:
ReturnCaseId,ActivityName,EventTimestamp,SourceSystem,LastDataUpdateenzovoort. Controleer of de kolomEventTimestampeen consistent datum- en tijdformaat gebruikt. Het bestand is nu klaar om naar ProcessMind te uploaden.
Configuratie
- Vereisten: Je hebt een NetSuite-licentie met de aanvullende module SuiteAnalytics Connect nodig. De gebruiker die de verbinding uitvoert, moet een rol hebben met de machtiging ‘SuiteAnalytics Connect’ en leesrechten voor transactie-, entiteits- en medewerkersrecords.
- Configuratie van databron: Configureer een DSN (Data Source Name) met het NetSuite ODBC-stuurprogramma. Hiervoor heb je je Account ID, Role ID en inloggegevens nodig. De servicehost is voor productieomgevingen doorgaans
odbcserver.netsuite.com. - Filter op datumbereik: Voeg een filter voor het datumbereik toe aan de eerste CTE die de Return Authorizations selecteert. Zonder filter probeert de query alle retourdata op te halen. Dat duurt waarschijnlijk erg lang of leidt tot een time-out. Voor een eerste analyse is een periode van 3 tot 6 maanden aanbevolen.
- Belangrijke transactietypen: De query gebruikt verschillende belangrijke transactietypen: ReturnAuthorization, ItemReceipt, CreditMemo, CustomerRefund en SalesOrd (voor omruilingen). Controleer of je proces deze standaardobjecten gebruikt.
- Afhankelijkheid van aangepaste velden: Activiteiten zoals ‘Artikel geïnspecteerd’ en attributen zoals ‘Retourtype’ worden vaak vastgelegd in aangepaste velden. De meegeleverde query bevat tijdelijke aanduidingen zoals
CUSTBODY_INSPECTION_STATUSenCUSTBODY_RETURN_TYPE. Zoek de juiste ID’s van aangepaste velden in je systeem en pas de query daarop aan. - Aandachtspunten voor prestaties: Dit is een complexe query met meerdere joins en een grote
UNION ALL-structuur. Voer de query buiten piekuren uit om de invloed op de systeemprestaties te beperken. Overweeg bij zeer grote datasets de query in kleinere perioden uit te voeren en de resultaten samen te voegen.
a Voorbeeldquery 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%'; Klaar om aan de slag te gaan?
Gebruik deze datatemplate om de afhandeling van retouren en terugbetalingen te verbeteren. Begin vandaag met het optimaliseren van NetSuite-workflows voor meer efficiëntie en tevreden klanten.
Verbeter retouren en terugbetalingen en verhoog de efficiëntie van NetSuite
Verkort de doorlooptijd van retouren in NetSuite met 30%. Begin vandaag met het verbeteren van de bedrijfsvoering.
Geen creditcard nodig • Binnen enkele minuten ingesteld