Uw Returns & Refund Processing Data Template
NetSuiteUw Returns & Refund Processing Data Template
- Aanbevolen attributen om vast te leggen
- Belangrijkste activiteiten om te volgen
- NetSuite extractiehandleiding
Returns & Refund Processing Attributen
| Naam | Omschrijving | ||
|---|---|---|---|
| Activiteitsnaam ActivityName | De naam van de specifieke bedrijfsgebeurtenis of stap die heeft plaatsgevonden binnen het retourproces, zoals 'Artikel geïnspecteerd' of 'Terugbetaling verwerkt'. | ||
| Omschrijving De Activity Name beschrijft een afzonderlijke stap of mijlpaal in de levenscyclus van retouren en terugbetalingen. Deze events worden gesorteerd op hun timestamps om de procesflow op te bouwen. Het analyseren van de sequentie en frequentie van activiteiten helpt bij het identificeren van de meest voorkomende procespaden, knelpunten tussen stappen, en eventuele herwerkingen of herhaalde activiteiten. Voorbeelden zijn 'Return Authorization Created', 'Item Received' en 'Credit Memo Approved'. Het belang Dit attribuut definieert de stappen van het proces. Het is essentieel voor het visualiseren van de proceskaart, het analyseren van flow variaties en het identificeren van knelpunten of herwerkingslussen. Vindplaats Dit attribuut wordt doorgaans afgeleid van de statuswijzigingen van transactiegegevens zoals Return Authorizations en Credit Memo's, of van specifieke gebruikersacties vastgelegd in systeemnotities of aangepaste event logs. Voorbeelden Retourmachtiging AangemaaktItem OntvangenArtikel geïnspecteerdTerugbetaling VerwerktRetourautorisatie gesloten | |||
| Gebeurtenistijdstempel EventTimestamp | De exacte datum en tijd waarop de activiteit plaatsvond, dienend als de chronologische ruggengraat van het proces. | ||
| Omschrijving De Event Timestamp registreert het exacte moment dat een activiteit plaatsvond. Deze data is cruciaal voor het correct sequencen van events en voor alle tijdsgebonden analyses. Het wordt gebruikt om de duur tussen activiteiten, totale case cycle tijden en wachttijden te berekenen, die fundamenteel zijn voor prestatiebewaking, bottleneck analyse en SLA compliance checks. Timestamps moeten nauwkeurig zijn om de betrouwbaarheid van process mining inzichten te garanderen. Het belang Dit attribuut biedt de chronologische volgorde van events, wat noodzakelijk is voor het ontdekken van de procesflow en het berekenen van alle prestatiemetrieken zoals doorlooptijden en wachttijden. Vindplaats Deze informatie is doorgaans afkomstig van de velden 'Datum aangemaakt' of 'Laatst gewijzigd' op NetSuite-records of van timestamps in de sublijst Systeemnotities die gekoppeld zijn aan transacties. Voorbeelden 2023-10-26T10:00:00Z2023-10-26T14:35:10Z2023-10-27T09:12:05Z | |||
| Retour Case ID ReturnCaseId | De unieke identificatie voor één enkele klantenretour- of terugbetalingscase, die alle gerelateerde activiteiten van initiatie tot afsluiting koppelt. | ||
| Omschrijving De Return Case ID dient als de primaire identificatie voor het volgen van de end-to-end reis van een retour. Elke unieke ID correspondeert met één retourautorisatie, wat een uitgebreide analyse van alle gerelateerde events mogelijk maakt, zoals ontvangst van artikel, inspectie en terugbetalingsverwerking. In process mining is deze ID essentieel voor het reconstrueren van de complete procesflow voor elke retour, waardoor het mogelijk wordt om doorlooptijden te berekenen en afwijkingen op case-niveau te identificeren. Het belang Dit is het fundamentele attribuut voor process mining, aangezien het alle individuele events verbindt tot coherente end-to-end procesinstantiaties, wat het mogelijk maakt om procesflows en prestaties te analyseren. Vindplaats Dit is doorgaans de Interne ID of Transactie ID van de Return Authorization record in NetSuite. Voorbeelden RMA-0012345RMA-0012346RMA-0012347 | |||
| Bronsysteem SourceSystem | Het systeem waaruit de data is geëxtraheerd, gebruikt voor het traceren van dataherkomst. | ||
| Omschrijving Dit attribuut identificeert de herkomst van de procesdata. In deze context zal dit doorgaans 'NetSuite' zijn. Het specificeren van het bronsysteem is belangrijk in omgevingen waar data mogelijk uit meerdere systemen wordt samengevoegd, wat zorgt voor duidelijke data lineage en traceerbaarheid. Het belang Identificeert de oorsprong van de Vindplaats Dit is een statische waarde ('NetSuite') die doorgaans wordt toegevoegd tijdens het data-extractie- en transformatieproces. Voorbeelden `NetSuite`NetSuite ERP | |||
| Laatste data-update LastDataUpdate | De timestamp die aangeeft wanneer de data voor dit proces voor het laatst is ververst of bijgewerkt. | ||
| Omschrijving Dit attribuut registreert wanneer de dataset voor het laatst is bijgewerkt vanuit het bronsysteem. Het is een cruciaal stuk metadata dat gebruikers informeert over de actualiteit van de analyse. Het weergeven van deze informatie in dashboards helpt verwachtingen te managen en zorgt ervoor dat beslissingen worden genomen op basis van inzicht in de tijdigheid van de data. Het belang Biedt transparantie over de actualiteit van de data, wat essentieel is voor gebruikers om de analyse te vertrouwen en de relevantie ervan voor de huidige operationele status te begrijpen. Vindplaats Deze Voorbeelden 2024-05-21T02:00:00Z2024-05-22T02:00:00Z | |||
| Afdeling Department | De bedrijfsafdeling of het team dat verantwoordelijk is voor de afhandeling van de retourcase in een bepaalde fase. | ||
| Omschrijving Dit attribuut wijst procesactiviteiten toe aan een specifieke afdeling, zoals 'Klantenservice', 'Magazijn' of 'Financiën'. Het is essentieel voor het begrijpen van overdrachten tussen teams en het identificeren van afdelingsgebonden knelpunten. Door de tijd te analyseren die cases doorbrengen binnen of wachtend op een specifieke afdeling, kunnen organisaties bronnen van vertraging pinpointen en de toewijzing van middelen optimaliseren. Dit is een primaire dimensie voor het 'Departmental Return Process Performance' dashboard. Het belang Maakt analyse van procesprestaties per functioneel gebied mogelijk, waarbij interdepartementale overdrachtsvertragingen en afdelings- Vindplaats Dit kan worden afgeleid van de gebruikers- of werknemersrecord die is gekoppeld aan een activiteit, of van een 'Afdeling'-veld op de transactie zelf. Het wordt vaak geconfigureerd in werknemersrecords in NetSuite. Voorbeelden MagazijnKlantenserviceFinanciënKwaliteitsborging | |||
| Doorlooptijd CycleTime | De totale verstreken tijd vanaf de aanmaak van de retouraanvraag tot de uiteindelijke afsluiting. | ||
| Omschrijving
Het belang Dit is een primaire maatstaf voor procesprestaties. Hoge doorlooptijden wijzen vaak op inefficiënties, knelpunten of overmatig handmatig werk, wat leidt tot hogere operationele kosten en een slechte klantervaring. Vindplaats Dit is geen veld in het bronsysteem. Het is een metriek die wordt berekend tijdens process mining analyse door de minimale timestamp af te trekken van de maximale timestamp voor elke case. Voorbeelden 10 dagen 4 uur5 dagen 12 uur21 dagen 2 uur | |||
| Retourstatus ReturnAuthorizationStatus | De huidige status van de retourautorisatie, zoals 'Wacht op goedkeuring', 'Goedgekeurd' of 'Gesloten'. | ||
| Omschrijving Dit attribuut geeft de huidige status van de retourcase binnen zijn levenscyclus aan. Het is fundamenteel voor het begrijpen van de voortgang van retouren en voor het segmenteren van cases. Het analyseren van de tijd die in de status 'Wacht op ontvangst' wordt doorgebracht, kan bijvoorbeeld verzendvertragingen benadrukken, terwijl een lange duur in 'Wacht op goedkeuring' kan duiden op een intern knelpunt. Het wordt ook gebruikt om de uiteindelijke uitkomst van een retour te bepalen, zoals 'Gesloten' of 'Afgewezen'. Het belang Biedt een momentopname van waar elke retour zich in het proces bevindt, wat analyse van case-distributie, statusduren en procesresultaten mogelijk maakt. Vindplaats Dit komt overeen met de 'Status' of een vergelijkbaar veld op de NetSuite Return Authorization record. Voorbeelden In afwachting van goedkeuringIn Afwachting van OntvangstGoedgekeurdAfgewezenGesloten | |||
| Retourtype ReturnType | De classificatie van de retour op basis van de reden die door de klant is opgegeven. | ||
| Omschrijving Het Retourtype categoriseert retouren op basis van de onderliggende reden, zoals 'Defect Artikel', 'Verkeerde Maat', 'Bedenktijd' of 'Niet zoals Beschreven'. Deze categorisering is essentieel voor root cause analyse. Door processtatistieken te analyseren over verschillende retourtypen, kan een bedrijf productkwaliteitsproblemen, onnauwkeurige beschrijvingen of fulfilmentfouten identificeren. Dit attribuut is cruciaal voor het 'Returns Performance By Type And Channel' dashboard. Het belang Helpt bij het identificeren van de hoofdoorzaken van retouren, waardoor gerichte verbeteringen in producten, marketingbeschrijvingen of het Vindplaats Dit is doorgaans een aangepast veld of een standaard lijst/record-veld op het retourautorisatieformulier waar de retourreden wordt vastgelegd. Voorbeelden Defect productVerkeerd artikel verzondenKlantontevredenheidVerkeerde maat/kleur | |||
| Verwerkende Agent ProcessingAgent | De medewerker of gebruiker die een specifieke activiteit in het retourproces heeft uitgevoerd. | ||
| Omschrijving De Processing Agent identificeert de persoon die verantwoordelijk is voor het uitvoeren van een bepaalde taak, zoals het goedkeuren van een retour of het inspecteren van een artikel. Dit attribuut is cruciaal voor prestatieanalyse op gebruikersniveau. Het helpt bij het identificeren van goed presterende medewerkers, gebieden waar aanvullende training nodig kan zijn, en onevenwichtigheden in de werkdruk binnen een team. Het analyseren van activiteiten per agent is essentieel voor het 'Departmental Return Process Performance' dashboard. Het belang Maakt analyse van individuele en team-prestaties, Vindplaats Dit kan worden verkregen uit velden zoals 'Aangemaakt door', 'Goedgekeurd door', of gebruikersvelden in de sublijst Systeemnotities op NetSuite-transacties. Voorbeelden Alice JohnsonBob WilliamsCharlie Brown | |||
| Werkelijk terugbetalingsbedrag ActualRefundAmount | Het uiteindelijke geldbedrag dat daadwerkelijk aan de klant is terugbetaald. | ||
| Omschrijving Dit attribuut vertegenwoordigt de werkelijke waarde die aan de klant is gecrediteerd of terugbetaald, zoals vastgelegd op de creditnota of terugbetalingstransactie. Dit bedrag kan afwijken van het aangevraagde bedrag als gevolg van aanpassingen zoals herbevoorradingskosten, verzendkosten of gedeeltelijke terugbetalingen voor beschadigde goederen. Dit attribuut is cruciaal voor financiële rapportage en voor het berekenen van de 'Refund Amount Discrepancy Rate' KPI. Het belang Vertegenwoordigt de ware financiële impact van de retour en is essentieel voor financiële reconciliatie en het analyseren van de nauwkeurigheid van terugbetalingen. Vindplaats Deze waarde is afkomstig van het 'Totaal' veld op de Credit Memo transactie die wordt gegenereerd uit de retourautorisatie. Voorbeelden 99.99140.000.00 | |||
| Aangevraagd terugbetalingsbedrag RequestedRefundAmount | Het geldbedrag van de terugbetaling dat oorspronkelijk is aangevraagd of verwacht voor de retour. | ||
| Omschrijving Dit attribuut slaat de verwachte terugbetalingswaarde aan het begin van het proces op. Het is doorgaans gebaseerd op de oorspronkelijke aankoopprijs van de geretourneerde artikelen. Dit bedrag dient als een basislijn voor vergelijking met het uiteindelijk terugbetaalde bedrag. De 'Refund Amount Discrepancy Rate' KPI vergelijkt deze waarde direct met het daadwerkelijke terugbetaalde bedrag om afwijkingen te identificeren die worden veroorzaakt door herbevoorradingskosten, gedeeltelijke terugbetalingen of andere aanpassingen. Het belang Biedt een basislijn voor financiële analyse, helpt bij het volgen van verschillen tussen verwachte en werkelijke terugbetalingsbedragen en het identificeren van redenen voor aanpassingen. Vindplaats Deze waarde is afgeleid van de velden 'Bedrag' of 'Tarief' op de regelitems van de Return Authorization transactie. Voorbeelden 99.99150.0025.50 | |||
| Beleidshandhaving ReturnPolicyAdherence | Geeft aan of de retour voldoet aan het vastgestelde retourbeleid van het bedrijf. | ||
| Omschrijving Dit booleaanse of categorische attribuut markeert of een retour voldoet aan alle vooraf gedefinieerde criteria, zoals retourtermijn, artikelconditie en aankoopbewijs. Het wordt gebruikt om compliance te monitoren en uitzonderingen te beheren. Het 'Return Policy Adherence Exceptions' dashboard is afhankelijk van dit attribuut om cases te markeren die speciale behandeling of beoordeling vereisen, wat helpt om risico's te minimaliseren en een consistente toepassing van regels te waarborgen. Het belang Helpt bij het monitoren en handhaven van retourbeleid, het verminderen van financieel risico door niet- Vindplaats Dit zou vrijwel zeker een aangepast veld zijn, mogelijk een keuzelijst of selectievakje, op de Return Authorization record, beheerd via een workflow. Voorbeelden CompliantNiet-compliant - Buiten termijnUitzondering goedgekeurd | |||
| Is Geautomatiseerd IsAutomated | Een boolean vlag die aangeeft of een activiteit automatisch door het systeem is uitgevoerd. | ||
| Omschrijving Dit attribuut geeft aan of een activiteit is uitgevoerd door een gebruiker of door een geautomatiseerd systeem, script of workflow. Zo kan een initiële 'Return Authorization Created' event geautomatiseerd zijn via een klantenportal, terwijl 'Item Inspected' een handmatige activiteit is. Het volgen van automatisering helpt bij het identificeren van mogelijkheden om handmatige stappen te automatiseren en bij het meten van de efficiëntiewinsten van bestaande automatiseringen. Het belang Helpt bij het onderscheiden tussen handmatige en geautomatiseerde taken, wat essentieel is voor het identificeren van automatiseringsmogelijkheden en het meten van de impact van digitale transformatie-inspanningen. Vindplaats Dit kan worden afgeleid uit de gebruiker die is gekoppeld aan een event. Systeem-gegenereerde events in NetSuite zijn vaak gekoppeld aan een specifieke systeemgebruiker of een script-ID. Voorbeelden truefalse | |||
| Klant-ID CustomerId | De unieke identificatie voor de klant die de retour initieert. | ||
| Omschrijving De Customer ID koppelt een retourtransactie aan een specifieke klant. Dit maakt klantgerichte analyse mogelijk, zoals het identificeren van klanten met frequente retouren, wat kan duiden op ontevredenheid of frauduleus gedrag. Het maakt ook segmentatie van procesprestaties mogelijk per klanttype of -waarde, wat helpt bij het prioriteren van service voor belangrijke accounts. Het belang Faciliteert klantniveau-analyse van retourgedrag en maakt processegmentatie mogelijk op basis van klant- Vindplaats Dit is het 'Klant'- of 'Entiteit'-veld op de header van de Return Authorization record in NetSuite. Voorbeelden CUST-001CUST-002CUST-003 | |||
| Productidentificatie ProductIdentifier | De unieke identificatie voor het geretourneerde product, zoals SKU of Artikelnummer. | ||
| Omschrijving Dit attribuut identificeert het specifieke artikel dat betrokken is bij de retour. Het analyseren van retouren op productniveau is cruciaal voor het identificeren van artikelen met hoge retourpercentages, wat kan duiden op kwaliteitsgebreken, slechte beschrijvingen of andere problemen. Deze data maakt diepgaande analyse van productprestaties mogelijk en kan beslissingen informeren met betrekking tot productontwikkeling, inkoop en marketing. Het belang De links tussen retourdata en specifieke producten maken root cause analyses mogelijk voor productgerelateerde problemen, wat helpt bij het verlagen van het totale retourpercentage. Vindplaats Dit is te vinden op de 'Items' sublijst van de Return Authorization record. Het correspondeert met het 'Item' veld. Voorbeelden SKU-TEE-BL-LPROD-00543ITEM-987123 | |||
| Retourconditie ReturnCondition | De beoordeelde conditie van het geretourneerde artikel bij inspectie, zoals 'Nieuw', 'Beschadigd' of 'Gebruikt'. | ||
| Omschrijving Dit attribuut legt de uitkomst vast van de fysieke inspectie van het geretourneerde artikel. De conditie bepaalt de volgende stappen, zoals of een volledige terugbetaling wordt uitgegeven, het artikel opnieuw wordt opgeslagen, of dat het moet worden afgedankt. Het analyseren van de consistentie en verwerkingstijden van deze beoordeling is de focus van het 'Return Condition Assessment Quality' dashboard en is cruciaal voor financiële reconciliatie en voorraadbeheer. Het belang Heeft direct invloed op het financiële resultaat van de retour en de daaropvolgende voorraadacties. Inconsistente beoordelingen kunnen leiden tot financieel verlies en procesherwerking. Vindplaats Dit is waarschijnlijk een aangepast veld op de Item Receipt record of de Return Authorization record dat wordt ingevuld door magazijnpersoneel tijdens de inspectie. Voorbeelden HerdraagtbaarBeschadigd - In doosGebruikt - Goede staatOntbrekende Onderdelen | |||
| Retourkanaal ReturnChannel | Het kanaal waarlangs de oorspronkelijke aankoop is gedaan of de retour is geïnitieerd. | ||
| Omschrijving Het Retourkanaal geeft de herkomst van de retour aan, bijvoorbeeld 'Online', 'In-Store' of 'Marketplace'. Verschillende kanalen kunnen onderscheidende retourprocessen, kosten en klantverwachtingen hebben. Het analyseren van prestaties per kanaal helpt bedrijven elk specifiek proces te optimaliseren, middelen effectief toe te wijzen en kanaalspecifieke problemen te begrijpen. Dit is een kernattribuut voor het 'Returns Performance By Type And Channel' dashboard. Het belang Maakt prestatievergelijking tussen verschillende bedrijfskanalen mogelijk, waarbij inefficiënties of best practices worden onthuld die specifiek zijn voor de manier waarop retouren worden geïnitieerd en afgehandeld. Vindplaats Deze informatie is vaak afkomstig van de oorspronkelijke verkooporderrecord die aan de retour is gekoppeld. Het kan zijn opgeslagen in een 'Kanaal'- of 'Locatie'-veld. Voorbeelden WebwinkelWinkelAmazon MarketplaceTelefonische bestelling | |||
| SLA-doeldatum terugbetaling RefundSlaTargetDate | De streefdatum waarop de terugbetaling naar verwachting zal zijn verwerkt volgens de service level agreements. | ||
| Omschrijving De Refund SLA Target Date is een berekende timestamp die de toezegging aan de klant vertegenwoordigt voor het verwerken van hun terugbetaling. Het wordt doorgaans berekend door een vooraf gedefinieerde periode, zoals 5 werkdagen, toe te voegen aan een belangrijke gebeurtenis zoals 'Item Received' of 'Refund Approved'. Dit attribuut is essentieel voor het 'Refund SLA Compliance Monitoring' dashboard en de 'Refund SLA Achievement Rate' KPI, waardoor het bedrijf de prestaties kan meten aan de hand van zijn beloften. Het belang Maakt kwantitatieve meting van prestaties ten opzichte van klantafspraken mogelijk, wat cruciaal is voor het handhaven van klanttevredenheid en vertrouwen. Vindplaats Deze datum is meestal geen standaardveld. Het moet worden afgeleid door een vooraf gedefinieerde SLA-periode (bijv. 5 dagen) toe te voegen aan een belangrijke timestamp, zoals de 'Item Received' datum. Voorbeelden 2023-11-01T23:59:59Z2023-11-05T23:59:59Z2023-11-10T23:59:59Z | |||
| Verschil in terugbetalingsbedrag RefundAmountDiscrepancy | Het berekende verschil tussen het aangevraagde terugbetalingsbedrag en het daadwerkelijk terugbetaalde bedrag. | ||
| Omschrijving Deze metriek wordt berekend door het 'Werkelijke terugbetalingsbedrag' af te trekken van het 'Aangevraagde terugbetalingsbedrag'. Een niet-nulwaarde geeft aan dat er een aanpassing is gedaan tijdens het proces, bijvoorbeeld voor herbevoorradingskosten of beschadigde goederen. Dit attribuut wordt gebruikt om analyses voor de 'Refund Amount Discrepancy Rate' KPI te voeden, en helpt cases met aanzienlijke financiële aanpassingen te markeren voor verdere beoordeling. Het belang Belicht financiële aanpassingen die zijn gedaan tijdens het retourproces, waardoor analyse mogelijk is van waarom verschillen optreden en of deze consistent en gerechtvaardigd zijn. Vindplaats Dit is een berekend attribuut. De formule is: Voorbeelden 0.0010.00-5.00 | |||
| Voldoet aan SLA IsSlaCompliant | Een berekende vlag die aangeeft of de terugbetaling is verwerkt binnen het gedefinieerde SLA-doel. | ||
| Omschrijving Dit booleaanse attribuut wordt afgeleid door de 'Refund Processed' timestamp te vergelijken met de 'Refund SLA Target Date'. Als de terugbetaling op of voor de streefdatum is verwerkt, is de waarde true, anders is deze false. Deze vlag vereenvoudigt het maken van compliancerapporten en dashboards, zoals het 'Refund SLA Compliance Monitoring' dashboard, en wordt gebruikt om de 'Refund SLA Achievement Rate' KPI te berekenen. Het belang Biedt een duidelijk, binair resultaat voor SLA-prestaties per case, waardoor het eenvoudig is om nalevingspercentages in de tijd te volgen, te rapporteren en te analyseren. Vindplaats Dit attribuut wordt berekend tijdens datatransformatie of binnen de process mining tool. De logica is: Voorbeelden truefalse | |||
Returns & Refund Processing Activiteiten
| Activiteit | Omschrijving | ||
|---|---|---|---|
| Creditnota aangemaakt | Deze activiteit betekent dat het financiële deel van de retour is geïnitieerd door een Credit Memo aan te maken. Dit document specificeert het bedrag dat aan de klant moet worden terugbetaald en wordt aangemaakt vanuit de retourautorisatie nadat het artikel is ontvangen en goedgekeurd. | ||
| Het belang De aanmaak van de Credit Memo is een belangrijke financiële mijlpaal. De tijd tussen de ontvangst van het artikel en de aanmaak van de creditnota onthult de efficiëntie van het inspectie-naar-kredietproces. Vindplaats Deze event is de aanmaak timestamp van de CreditMemo transactie. Het 'Created From' veld op de Credit Memo linkt deze terug naar de ReturnAuthorization. Vastleggen Aanmaakdatum van de NetSuite CreditMemo transactie. Gebeurtenistype explicit | |||
| Item Ontvangen | Deze activiteit markeert de fysieke ontvangst van het geretourneerde artikel in het magazijn of verwerkingscentrum. In NetSuite wordt dit expliciet vastgelegd door het aanmaken van een Item Receipt transactie die gekoppeld is aan de oorspronkelijke Return Authorization. | ||
| Het belang Dit is een cruciale mijlpaal die het proces overdraagt van klantactie naar interne verwerking. De tijd tussen 'Retour Goedgekeurd' en 'Artikel Ontvangen' meet de retoursnelheid van de klant, terwijl de tijd na deze gebeurtenis de interne efficiëntie meet. Vindplaats Deze event is de aanmaak timestamp van de ItemReceipt transactie. Deze record is direct gekoppeld aan de oorspronkelijke ReturnAuthorization. Vastleggen Aanmaakdatum van de NetSuite ItemReceipt transactie gekoppeld aan de RA. Gebeurtenistype explicit | |||
| Retourautorisatie gesloten | Dit is de laatste activiteit, die de administratieve afsluiting van de retourcase markeert nadat alle verwerking is voltooid. Dit wordt afgeleid uit de uiteindelijke statuswijziging op de Return Authorization record naar een 'Gesloten' status. | ||
| Het belang Als het definitieve eindpunt van het proces is deze activiteit essentieel voor het berekenen van end-to-end Vindplaats Afgeleid van de systeemnotities of Vastleggen Detecteer statuswijziging op het ReturnAuthorization-record naar een 'Gesloten'-status. Gebeurtenistype inferred | |||
| Retourautorisatie goedgekeurd | Deze activiteit vertegenwoordigt de formele goedkeuring van het retouraanvraag van de klant door een medewerker, waardoor het proces kan worden voortgezet. Het wordt doorgaans vastgelegd door een wijziging in het statusveld van de Return Authorization record af te leiden, zoals van 'Wacht op goedkeuring' naar 'Wacht op ontvangst'. | ||
| Het belang Het volgen van deze goedkeuringsstap is cruciaal voor het identificeren van knelpunten in de initiële beoordelingsfase. Vertragingen hier beïnvloeden direct de tijd die nodig is om de klant te informeren en het geretourneerde artikel te ontvangen. Vindplaats Afgeleid van de systeemnotities of Vastleggen Detecteer statuswijziging op het ReturnAuthorization-record naar een 'Goedgekeurd'-status. Gebeurtenistype inferred | |||
| Retourmachtiging Aangemaakt | Deze activiteit markeert de initiatie van het retourproces wanneer een klant een artikel wil retourneren. Het wordt expliciet vastgelegd in NetSuite door de aanmaak van een nieuwe Return Authorization (RA) record, die dient als de primaire case identifier voor de retour. | ||
| Het belang Als het startpunt van het proces is deze activiteit essentieel voor het meten van de totale retour Vindplaats Deze event is de aanmaak timestamp van de ReturnAuthorization record in NetSuite. De gebruiker, datum en initiële status (bijv. 'Wacht op goedkeuring') worden doorgaans vastgelegd op deze record. Vastleggen Aanmaakdatum van de NetSuite ReturnAuthorization transactie. Gebeurtenistype explicit | |||
| Terugbetaling Verwerkt | Dit is de uiteindelijke financiële afwikkeling waarbij de tegoeden aan de klant worden terugbetaald. Het wordt expliciet vastgelegd door de aanmaak van een Customer Refund transactie, die wordt gegenereerd vanuit de Credit Memo. | ||
| Het belang Deze activiteit is cruciaal voor het meten van SLA compliance en klanttevredenheid. De duur van 'Credit Memo Approved' tot 'Refund Processed' weerspiegelt direct de snelheid van de treasury- of financiële afdeling. Vindplaats Deze event is de aanmaak timestamp van de CustomerRefund transactie. Het 'Created From' veld op deze transactie linkt deze terug naar de CreditMemo. Vastleggen Aanmaakdatum van de NetSuite CustomerRefund transactie. Gebeurtenistype explicit | |||
| Artikel geïnspecteerd | Deze conceptuele activiteit vertegenwoordigt de voltooiing van de fysieke inspectie van het geretourneerde artikel om de conditie ervan te beoordelen. Aangezien NetSuite geen standaard 'Inspectie' object heeft, wordt dit doorgaans afgeleid uit een aangepast veld of een statusupdate op de Return Authorization of Item Receipt. | ||
| Het belang Inspectie is vaak een belangrijke Vindplaats Vereist systeemanalyse. Dit kan worden afgeleid uit een wijziging van een aangepast 'Inspectiestatus' veld op de ReturnAuthorization record, of het kan een offline proces zijn dat niet wordt vastgelegd. Vastleggen Afgeleid van een aangepaste status veldwijziging op de Retourautorisatie of Goederenontvangst. Gebeurtenistype inferred | |||
| Creditnota goedgekeurd | Vertegenwoordigt de formele goedkeuring van de creditnota, vaak vereist voor hoge terugbetalingsbedragen of als onderdeel van financiële controles. Dit wordt afgeleid uit een statuswijziging op de creditnotarecord, wat aangeeft dat deze klaar is voor toepassing of betaling. | ||
| Het belang Als financiële goedkeuringen vereist zijn, kan deze stap een aanzienlijke Vindplaats Afgeleid van de systeemnotities voor de CreditMemo-record, specifiek wanneer een goedkeuringsstatusveld wordt bijgewerkt van 'Wacht op goedkeuring' naar 'Goedgekeurd' of 'Open'. Vastleggen Detecteer statuswijziging op de CreditMemo-transactie naar een 'Goedgekeurd'-status. Gebeurtenistype inferred | |||
| Creditnota verrekend | Deze activiteit vertegenwoordigt een alternatief voor een contante terugbetaling, waarbij de creditnota wordt toegepast op een openstaande klantenfactuur. Het wordt afgeleid uit de 'Applied To' link op de creditnota, wat aangeeft dat het tegoed is gebruikt. | ||
| Het belang Het onderscheiden tussen contante terugbetalingen en kredietaanvragen is belangrijk voor financiële analyse. Dit pad vertegenwoordigt een ander type procesoplossing vergeleken met een directe terugbetaling. Vindplaats Afgeleid van de systeemnotities of gerelateerde records van de CreditMemo, specifiek wanneer deze is gekoppeld aan een factuurtransactie om het saldo van een klant te verrekenen. Vastleggen Detectie van de toepassing van een CreditMemo op een factuurtransactie. Gebeurtenistype inferred | |||
| Klant geïnformeerd | Vertegenwoordigt het verzenden van een melding aan de klant over een belangrijke statusupdate, zoals goedkeuring, ontvangst van artikel of verwerkte terugbetaling. Dit wordt meestal afgeleid uit de timestamp van een door het systeem gegenereerde e-mail die is vastgelegd onder het communicatietabblad van de record. | ||
| Het belang Tijdige communicatie is cruciaal voor klanttevredenheid. Het meten van de vertraging tussen een mijlpaal en de klantmelding helpt gaten in de klantervaring te identificeren. Vindplaats Vereist systeemanalyse. Gevangen van de timestamp van een uitgaande e-mail of gebruikersnotitie op het subtabblad Communicatie van de retourautorisatie of creditnota. Vastleggen Timestamp van een e-mail of communicatielogboekitem gekoppeld aan de case. Gebeurtenistype inferred | |||
| Retourautorisatie afgewezen | Dit vertegenwoordigt het besluit om een retouraanvraag van een klant te weigeren, vaak vanwege beleidsovertredingen. Dit event wordt vastgelegd door een statuswijziging op de Return Authorization record af te leiden naar een 'Afgewezen' of 'Gesloten' status zonder verdere verwerking. | ||
| Het belang Het analyseren van afwijzingen helpt bij het identificeren van veelvoorkomende redenen voor niet- Vindplaats Afgeleid van de systeemnotities of Vastleggen Detecteer statuswijziging op het ReturnAuthorization-record naar een 'Afgekeurd'-status. Gebeurtenistype inferred | |||
| Ruilorder aangemaakt | Deze activiteit vertegenwoordigt een omruilscenario waarbij een nieuwe verkooporder wordt aangemaakt voor de klant in plaats van een terugbetaling. Deze gebeurtenis wordt doorgaans vastgelegd door de aanmaak van een verkooporder die terugkoppelt naar de oorspronkelijke retourautorisatie. | ||
| Het belang Het volgen van omruilingen als een afzonderlijk pad helpt bij het analyseren van klantvoorkeuren en de efficiëntie van het omruilproces versus het terugbetalingsproces. Het is een veelvoorkomende en belangrijke variant. Vindplaats Deze event is de aanmaak timestamp van een nieuwe SalesOrder transactie. De link naar de ReturnAuthorization kan zich bevinden in een standaard of aangepast veld, wat systeemanalyse vereist. Vastleggen Aanmaakdatum van een verkooporder gekoppeld aan de retourautorisatie. Gebeurtenistype explicit | |||
Extractie Guides
Stappen
- Navigeren naar 'Saved Search Creation': Log in bij NetSuite. Navigeer naar Rapporten > Nieuwe Zoekopdracht. Klik op de pagina 'Nieuwe Opgeslagen Zoekopdracht' op 'Transactie'.
- Primaire criteria definiëren: Stel op de instellingenpagina van de 'Saved Search', onder het tabblad 'Criteria' en het subtabblad 'Standaard', de volgende filters in om de retourautorisatierecords te isoleren:
TypeisRetourautorisatieHoofdregelisJa- Voeg een
Datum Aangemaakt-filter toe en stel dit in op het gewenste datumbereik, bijvoorbeeld 'binnen de laatste 3 maanden'. Dit is cruciaal voor het beheren van hetdatavolume.
- Resultaatkolommen voor
attributesconfigureren: Ga naar het tabblad 'Resultaten'. Voeg de volgende velden toe die deattributesin uwevent logzullen worden. Gebruik 'Aangepast Label' om ze indien nodig te hernoemen voor de duidelijkheid.CaseID:DocumentnummerofTranID(Aangepast Label: ReturnCaseId)- Retourstatus:
Status(Aangepast Label: ReturnAuthorizationStatus) - Verwerkingsagent:
Aangemaakt doorof een aangepast veld indien van toepassing (Aangepast Label: ProcessingAgent) - Afdeling:
Afdeling(Aangepast Label: Department) - Retourtype: Een aangepast veld zoals
[Uw Retourredenveld](Aangepast Label: ReturnType) - Terugbetalingsbedrag:
Bedrag(Aangepast Label: ActualRefundAmount)
- Formulekolommen voor
Event Timestampstoevoegen: Dit is de meest kritische stap. Voor elk van de 12 activiteiten voegt u een 'Formule (Datum/Tijd)'-kolom toe. Elke formule gebruikt een CASE-statement om alleen eentimestampterug te geven als die specifiekeeventheeft plaatsgevonden. Zie de sectie 'query' voor de exacte formules die u voor elke activiteit moet gebruiken. - Statische kolommen toevoegen: Voeg twee 'Formule (Tekst)'-kolommen toe aan uw resultaten:
- Voor
SourceSystemgebruikt u de formule:'NetSuite'. - Voor
LastDataUpdategebruikt u een formule die de uitvoerdatum weergeeft, zoals{vandaag}. Voor een preciezetimestamp, is dit de exporttijd.
- Voor
- De zoekopdracht opslaan en exporteren: Geef uw zoekopdracht een beschrijvende naam, zoals 'ProcessMind Retour Extractie'. Klik op 'Opslaan & Uitvoeren'. Zodra de resultaten worden weergegeven, klikt u op het Exportpictogram en kiest u 'CSV'.
Datatransformeren naar eenEvent Log: Het geëxporteerde CSV-bestand heeft een 'breed' formaat, met één rij per retourcaseen veel kolommen voor verschillendeevent timestamps. U moet dit transformeren naar een 'lang' formaatevent log. Gebruik een tool zoals Microsoft Excel Power Query (Kolommenunpivot), Python of een andere scriptingtool om deze transformatie uit te voeren.- Voor elke rij in uw CSV, creëer meerdere nieuwe rijen, één voor elke niet-lege
event timestamp-kolom. - De nieuwe, getransformeerde tabel moet kolommen bevatten zoals
ReturnCaseId,ActivityNameenEventTimestamp. DeActivityNamekomt van de header van de origineletimestamp-kolom (bijv. 'Retourautorisatie Aangemaakt'), enEventTimestampis de waarde uit die kolom.
- Voor elke rij in uw CSV, creëer meerdere nieuwe rijen, één voor elke niet-lege
- Klaarmaken voor
upload: Zorg ervoor dat het uiteindelijke CSV-bestand de vereiste headers heeft:ReturnCaseId,ActivityName,EventTimestamp,SourceSystem,LastDataUpdate, plus eventuele aanbevolenattributes. Het bestand is nu klaar vooruploadnaar ProcessMind.
Configuratie
- Zoektype: De opgeslagen zoekopdracht (Saved Search) moet een
Transactiezoekopdracht zijn. - Datumbereik: Het is cruciaal om een datumbereikfilter toe te passen op het veld
Datum Aangemaaktvan de Retourautorisatie. Een bereik van 3-6 maanden wordt aanbevolen omdata-compleetheid en prestaties in balans te houden. - Primair filter: De zoekopdracht moet gefilterd zijn op
TypeisRetourautorisatieenHoofdregelisJaom één initiële record per retourcasete garanderen. - Aangepaste velden: De nauwkeurigheid van deze extractie, vooral voor conceptuele
eventszoals 'Artikel Geïnspecteerd' ofattributeszoals 'Retourtype', hangt sterk af van het gebruik van aangepaste velden op transactierecords door uw organisatie. De meegeleverde formules bevatten placeholders zoals{custbody_...}die moeten worden aangepast aan uw NetSuite-configuratie. - Gebruikersrechten: De gebruiker die de zoekopdracht uitvoert, heeft leesrechten nodig voor alle betrokken transactietypes: Retourautorisatie, Goederenontvangst, Creditnota, Klantterugbetaling en Verkooporder.
- Prestaties: Voor accounts met een zeer hoog retourvolume kan deze uitgebreide zoekopdracht traag zijn. Overweeg deze buiten piektijden uit te voeren of automatisch te plannen naar de bestandskast (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
- SuiteAnalytics Connect inschakelen: Zorg ervoor dat u een SuiteAnalytics Connect-licentie heeft voor uw NetSuite-account. Een beheerder moet de functie inschakelen onder Instellingen > Bedrijf > Functies inschakelen > Analyse.
- Gebruikersrechten toewijzen: Ken de verbindende gebruikersrol de 'SuiteAnalytics Connect'-toestemming toe. Deze gebruiker heeft ook leesrechten nodig voor alle records die worden opgevraagd, zoals transacties, werknemers en klanten.
- De ODBC-driver installeren: Download en installeer de juiste NetSuite ODBC-driver voor uw besturingssysteem via de SuiteAnalytics Connect-downloadpagina in NetSuite.
- De DSN configureren: Stel een Data Source Name (DSN) in op de machine waar u de query uitvoert. Voer uw Service Data Source, Server Hostname, Poort, Rol ID, Account ID en inloggegevens in.
- Verbind uw SQL-client: Gebruik een SQL-client, zoals DBeaver of Microsoft SQL Server Management Studio, om verbinding te maken met NetSuite met behulp van de geconfigureerde DSN.
- De SQL-query voorbereiden: Kopieer de meegeleverde SQL-query naar uw client. Deze query is ontworpen om alle belangrijke
eventsin het retour- en terugbetalingsproces te extraheren. - De query aanpassen: Wijzig de placeholderwaarden in de query. U moet minimaal het datumbereik in de
ReturnAuthorizationsCommon Table Expression (CTE) bijwerken om te filteren op de gewenste periode. Mogelijk moet u ook aangepaste veldnamen, zoalsCUSTBODY_RETURN_TYPE, of specifieke statuswaarden aanpassen aan uw NetSuite-configuratie. - De query uitvoeren: Voer de aangepaste SQL-query uit op de NetSuite-databasereplica. De uitvoeringstijd kan variëren afhankelijk van het datumbereik en het
datavolume. Datacontroleren en exporteren: Zodra de query is voltooid, controleert u de resultaten om er zeker van te zijn dat ze correct lijken. Exporteer de gehele resultatenset naar een CSV-bestand.- Klaarmaken voor
upload: Zorg ervoor dat de CSV-bestandsheaders overeenkomen met de vereisteattributes:ReturnCaseId,ActivityName,EventTimestamp,SourceSystem,LastDataUpdate, enz. Controleer of deEventTimestampkolom een consistent datum-/tijdformaat heeft. Het bestand is nu klaar vooruploadnaar ProcessMind.
Configuratie
- Vereisten: Een NetSuite-licentie met de add-on module SuiteAnalytics Connect is vereist. De gebruiker die de verbinding uitvoert, moet een rol hebben met de 'SuiteAnalytics Connect'-toestemming en leesrechten voor transactie-, entiteit- en werknemerrecords.
Databron configuratie: U moet een DSN (Data Source Name) configureren met behulp van de NetSuite ODBC-driver. Dit vereist uw Account ID, Rol ID en inloggegevens. De service host is doorgaansodbcserver.netsuite.comvoor productieomgevingen.- Datumbereik filtering: Het is cruciaal om een datumbereikfilter toe te passen op de initiële CTE die Retourautorisaties selecteert. Zonder filter zal de query proberen alle retour
dataop te halen en zal waarschijnlijk erg traag zijn of een timeout geven. Een bereik van 3 tot 6 maanden wordt aanbevolen voor initiële analyse. - Belangrijkste transactietypes: De query richt zich op verschillende kerntransactietypes: ReturnAuthorization, ItemReceipt, CreditMemo, CustomerRefund en SalesOrd (voor uitwisselingen). Zorg ervoor dat uw proces deze standaard objecten gebruikt.
- Aangepaste veldafhankelijkheden: Activiteiten zoals 'Artikel Geïnspecteerd' en
attributeszoals 'Retourtype' worden vaak vastgelegd in aangepaste velden. De meegeleverde query gebruikt placeholders zoalsCUSTBODY_INSPECTION_STATUSenCUSTBODY_RETURN_TYPE. U moet de juiste aangepaste veld-ID's in uw systeem identificeren en de query dienovereenkomstig bijwerken. - Prestatieoverwegingen: Dit is een complexe query met meerdere joins en een grote
UNION ALLstructuur. Voer deze uit tijdens daluren om de impact op de systeemprestaties te minimaliseren. Voor zeer grote datasets, overweeg de query in kleinere tijdsintervallen uit te voeren en de resultaten toe 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%';