Uw datatemplate voor Retour- & Terugbetalingsverwerking
Uw datatemplate voor Retour- & Terugbetalingsverwerking
- Aanbevolen attributen om vast te leggen
- Belangrijkste activiteiten om te volgen
- NetSuite extractiehandleiding
Attributen voor retouren- & terugbetalingsverwerking
| Naam | Beschrijving | ||
|---|---|---|---|
| Activiteitsnaam ActivityName | De naam van de specifieke bedrijfsgebeurtenis of stap die heeft plaatsgevonden binnen 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. Deze gebeurtenissen worden gesorteerd op hun tijdstempels om de processtroom op te bouwen. Het analyseren van de volgorde en frequentie van activiteiten helpt bij het vinden van de meest voorkomende procespaden, knelpunten tussen stappen, en eventuele reworkingen of herhaalde activiteiten. Voorbeelden zijn 'Return Authorization Created', 'Item Received' en 'Credit Memo Approved'. Waarom het belangrijk is Dit attribuut definieert de stappen van het proces. Het is belangrijk voor het visualiseren van de proceskaart, het analyseren van flowvariaties en het vinden van knelpunten of reworkingslussen. Waar te verkrijgen 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 AangemaaktArtikel OntvangenArtikel geïnspecteerdTerugbetaling VerwerktRetourautorisatie gesloten | |||
| Retourcase ID ReturnCaseId | De unieke ID voor één enkele klantenretour- of terugbetalingscase, die alle gerelateerde activiteiten van initiatie tot afsluiting koppelt. | ||
| Beschrijving De Return Case-ID dient als de primaire identificatie voor het volgen van de volledige procesgang van een retour. Elke unieke ID correspondeert met één retourautorisatie, wat een grondige analyse van alle gerelateerde gebeurtenissen mogelijk maakt, zoals ontvangst van artikel, inspectie en terugbetalingsverwerking. In process mining is deze ID belangrijk voor het reconstrueren van de complete processtroom voor elke retour, waardoor het mogelijk wordt om doorlooptijden te berekenen en afwijkingen op case-niveau te vinden. Waarom het belangrijk is Dit is het fundamentele attribuut voor process mining, aangezien het alle individuele gebeurtenissen verbindt tot coherente end-to-end procesinstantiaties, wat het mogelijk maakt om processtromen en prestaties te analyseren. Waar te verkrijgen Dit is doorgaans de Interne ID of Transactie-ID van de Return Authorization record in NetSuite. Voorbeelden RMA-0012345RMA-0012346RMA-0012347 | |||
| Tijdstempel EventTimestamp | De exacte datum en tijd waarop de activiteit plaatsvond, dienend als de chronologische basis van het proces. | ||
| Beschrijving De Event Timestamp registreert het exacte moment dat een activiteit plaatsvond. Deze gegevens zijn belangrijk voor het correct sequencen van gebeurtenissen en voor alle tijdsgebonden analyses. Het wordt gebruikt om de duur tussen activiteiten, totale case doorlooptijden en wachttijden te berekenen, die fundamenteel zijn voor prestatiebewaking, bottleneckanalyse en SLA-compliance-checks. Timestamps moeten nauwkeurig zijn om de betrouwbaarheid van process mining inzichten te zorgen. Waarom het belangrijk is Dit attribuut biedt de chronologische volgorde van gebeurtenissen, wat noodzakelijk is voor het bekijken van de processtroom en het berekenen van alle prestatiemaatstaven zoals doorlooptijden en wachttijden. Waar te verkrijgen Deze Informatie is doorgaans afkomstig van de velden 'Datum aangemaakt' of 'Laatst gewijzigd' op NetSuite-records of van tijdstempels in de sublijst Systeemnotities die gekoppeld zijn aan transacties. Voorbeelden 2023-10-26T10:00:00Z2023-10-26T14:35:10Z2023-10-27T09:12:05Z | |||
| Bronsysteem SourceSystem | Het systeem waaruit de data is opgehaald, gebruikt voor het traceren van dataherkomst. | ||
| Beschrijving 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. Waarom het belangrijk is Identificeert de oorsprong van de Waar te verkrijgen Dit is een statische waarde ('NetSuite') die doorgaans wordt toegevoegd tijdens het data-extractie- en transformatieproces. Voorbeelden NetSuiteNetSuite ERP | |||
| Tijdstip van extractie LastDataUpdate | De timestamp die aangeeft wanneer de data voor dit proces voor het voor het laatst is bijgewerkt of bijgewerkt. | ||
| Beschrijving Dit attribuut registreert wanneer de dataset voor het laatst is bijgewerkt vanuit het bronsysteem. Het is een belangrijk stuk metadata dat gebruikers Informapakketmeert over de relevantie 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. Waarom het belangrijk is Biedt transparantie over de relevantie van de data, wat belangrijk is voor gebruikers om de analyse te vertrouwen en de relevantie ervan voor de huidige operationele status te begrijpen. Waar te verkrijgen 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. | ||
| Beschrijving Dit attribuut wijst procesactiviteiten toe aan een specifieke afdeling, zoals 'Klantenservice', 'Magazijn' of 'Financiën'. Het is belangrijk voor het begrijpen van overdrachten tussen teams en het vinden van afdelingsgebonden knelpunten. Door de tijd te analyseren die cases doorbrengen binnen of wachtend op een specifieke afdeling, kunnen organisaties bronnen van vertraging precies aanwijzen en de toewijzing van middelen optimaliseren. Dit is een primaire dimensie voor het 'Departmental Return Process Performance' dashboard. Waarom het belangrijk is Maakt analyse van procesprestaties per functioneel gebied mogelijk, waarbij interdepartementale overdrachtsvertragingen en afdelings- Waar te verkrijgen 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 | |||
| Processende Agent ProcessingAgent | De medewerker of gebruiker die een specifieke activiteit in het retourproces heeft uitgevoerd. | ||
| Beschrijving 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 belangrijk voor prestatieanalyse op gebruikersniveau. Het helpt bij het vinden 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 belangrijk voor het 'Departmental Return Process Performance' dashboard. Waarom het belangrijk is Maakt analyse van individuele en team-prestaties, Waar te verkrijgen 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 | |||
| Retourstatus ReturnAuthorizationStatus | De huidige status van de retourautorisatie, zoals 'Wacht op goedkeuring', 'Goedgekeurd' of 'Gesloten'. | ||
| Beschrijving Dit attribuut geeft de huidige status van de retourcase binnen zijn levenscyclus aan. Het is onmisbaar 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'. Waarom het belangrijk is Biedt een momentopname van waar elke retour zich in het proces bevindt, wat analyse van case-distributie, statusduren en procesresultaten mogelijk maakt. Waar te verkrijgen 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. | ||
| Beschrijving Het Retourtype categoriseert retouren op basis van de onderliggende reden, zoals 'Defect Artikel', 'Verkeerde Maat', 'Bedenktijd' of 'Niet zoals Beschreven'. Deze categorisering is belangrijk voor rootcause-analyse. Door processtatistieken te analyseren over verschillende retourtypen, kan een bedrijf productkwaliteitsproblemen, onnauwkeurige beschrijvingen of fulfilmentfouten vinden. Dit attribuut is belangrijk voor het 'Returns Performance By Type And Channel' dashboard. Waarom het belangrijk is Helpt bij het vinden van de hoofdoorzaken van retouren, waardoor gerichte verbeteringen in producten, marketingbeschrijvingen of het Waar te verkrijgen 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 | |||
| Werkelijk terugbetalingsbedrag ActualRefundAmount | Het uiteindelijke geldbedrag dat daadwerkelijk aan de klant is terugbetaald. | ||
| Beschrijving 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 belangrijk voor financiële rapportage en voor het berekenen van de 'Refund Bedrag Discrepancy Rate' KPI. Waarom het belangrijk is Vertegenwoordigt de ware financiële impact van de retour en is belangrijk voor financiële reconciliatie en het analyseren van de nauwkeurigheid van terugbetalingen. Waar te verkrijgen 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. | ||
| Beschrijving 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 Bedrag Discrepancy Rate' KPI vergelijkt deze waarde direct met het daadwerkelijke terugbetaalde bedrag om afwijkingen te vinden die worden veroorzaakt door herbevoorradingskosten, gedeeltelijke terugbetalingen of andere aanpassingen. Waarom het belangrijk is Biedt een basislijn voor financiële analyse, helpt bij het volgen van verschillen tussen verwachte en werkelijke terugbetalingsbedragen en het vinden van redenen voor aanpassingen. Waar te verkrijgen 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. | ||
| Beschrijving 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. Waarom het belangrijk is Helpt bij het monitoren en handhaven van retourbeleid, het verminderen van financieel risico door niet- Waar te verkrijgen 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. | ||
| Beschrijving 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' gebeurtenis geautomatiseerd zijn via een klantenportal, terwijl 'Item Inspected' een handmatige activiteit is. Het volgen van automatisering helpt bij het vinden van mogelijkheden om handmatige stappen te automatiseren en bij het meten van de efficiëntiewinsten van bestaande automatiseringen. Waarom het belangrijk is Helpt bij het onderscheiden tussen handmatige en geautomatiseerde taken, wat belangrijk is voor het vinden van automatiseringsmogelijkheden en het meten van de impact van digitale transformatie-inspanningen. Waar te verkrijgen Dit kan worden afgeleid uit de gebruiker die is gekoppeld aan een gebeurtenis. Systeem-gegenereerde gebeurtenissen in NetSuite zijn vaak gekoppeld aan een specifieke systeemgebruiker of een script-ID. Voorbeelden truefalse | |||
| Klant-ID CustomerId | De unieke ID voor de klant die de retour initieert. | ||
| Beschrijving De Klant ID koppelt een retourtransactie aan een specifieke klant. Dit maakt klantgerichte analyse mogelijk, zoals het vinden 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. Waarom het belangrijk is Faciliteert klantniveau-analyse van retourgedrag en maakt processegmentatie mogelijk op basis van klant- Waar te verkrijgen 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 ID voor het geretourneerde product, zoals SKU of Artikelnummer. | ||
| Beschrijving Dit attribuut identificeert het specifieke artikel dat betrokken is bij de retour. Het analyseren van retouren op productniveau is belangrijk voor het vinden van artikelen met hoge retourpercentages, wat kan duiden op kwaliteitsgebreken, slechte beschrijvingen of andere problemen. Deze data maakt gedetailleerde analyse van productprestaties mogelijk en kan beslissingen Informapakketmeren voor productontwikkeling, inkoop en marketing. Waarom het belangrijk is De links tussen retourdata en specifieke producten maken rootcause-analyses mogelijk voor productgerelateerde problemen, wat helpt bij het verlagen van het totale retourpercentage. Waar te verkrijgen 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 | |||
| Refund SLA Target Datum RefundSlaTargetDate | De streefdatum waarop de terugbetaling naar verwachting zal zijn verwerkt volgens de service level agreements. | ||
| Beschrijving De Refund SLA Target Date is een berekende timestamp die de toezegging aan de klant vertegenwoordigt voor het processen 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 belangrijk 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. Waarom het belangrijk is Maakt kwantitatieve meting van prestaties ten opzichte van klantafspraken mogelijk, wat belangrijk is voor het handhaven van klanttevredenheid en vertrouwen. Waar te verkrijgen 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 | |||
| Retourconditie ReturnCondition | De beoordeelde conditie van het geretourneerde artikel bij inspectie, zoals 'Nieuw', 'Beschadigd' of 'Gebruikt'. | ||
| Beschrijving 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 belangrijk voor financiële reconciliatie en voorraadbeheer. Waarom het belangrijk is Heeft direct invloed op het financiële resultaat van de retour en de daaropvolgende voorraadacties. Inconsistente beoordelingen kunnen leiden tot financieel verlies en procesreworking. Waar te verkrijgen 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. | ||
| Beschrijving 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. Waarom het belangrijk is 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. Waar te verkrijgen 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 | |||
| Verschil in terugbetalingsbedrag RefundAmountDiscrepancy | Het berekende verschil tussen het aangevraagde terugbetalingsbedrag en het daadwerkelijk terugbetaalde bedrag. | ||
| Beschrijving 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 Bedrag Discrepancy Rate' KPI te voeden, en helpt cases met aanzienlijke financiële aanpassingen te markeren voor verdere beoordeling. Waarom het belangrijk is 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. Waar te verkrijgen 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. | ||
| Beschrijving Deze vlag 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. Waarom het belangrijk is 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. Waar te verkrijgen Dit attribuut wordt berekend tijdens datatransformatie of binnen de process mining-tool. De logica is: Voorbeelden truefalse | |||
Activiteiten voor retouren- & terugbetalingsverwerking
| 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 het aanmaken van een Item Receipt transactie die gekoppeld is aan de oorspronkelijke Return Authorization. | ||
| Waarom het belangrijk is Dit is een belangrijke 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. Waar te verkrijgen Deze gebeurtenis 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 | |||
| 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. | ||
| Waarom het belangrijk is 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. Waar te verkrijgen Deze gebeurtenis 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 | |||
| 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. | ||
| Waarom het belangrijk is Als het definitieve eindpunt van het proces is deze activiteit belangrijk voor het berekenen van end-to-end Waar te verkrijgen 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'. | ||
| Waarom het belangrijk is Het volgen van deze goedkeuringsstap is belangrijk voor het vinden van knelpunten in de initiële beoordelingsfase. Vertragingen hier beïnvloeden direct de tijd die nodig is om de klant te Informapakketmeren en het geretourneerde artikel te ontvangen. Waar te verkrijgen 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 kenmerk voor de retour. | ||
| Waarom het belangrijk is Als het startpunt van het proces is deze activiteit belangrijk voor het meten van de totale retour Waar te verkrijgen Deze gebeurtenis 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 Klant Refund transactie, die wordt gegenereerd vanuit de Credit Memo. | ||
| Waarom het belangrijk is Deze activiteit is belangrijk 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. Waar te verkrijgen Deze gebeurtenis is de aanmaak timestamp van de KlantRefund transactie. Het 'Created From' veld op deze transactie linkt deze terug naar de CreditMemo. Vastleggen Aanmaakdatum van de NetSuite KlantRefund 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. | ||
| Waarom het belangrijk is Inspectie is vaak een belangrijke Waar te verkrijgen Verplicht 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 statusveldwijziging 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. | ||
| Waarom het belangrijk is Als financiële goedkeuringen vereist zijn, kan deze stap een aanzienlijke Waar te verkrijgen 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. | ||
| Waarom het belangrijk is 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. Waar te verkrijgen 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 het record. | ||
| Waarom het belangrijk is Tijdige communicatie is belangrijk voor klanttevredenheid. Het meten van de vertraging tussen een mijlpaal en de klantmelding helpt gaten in de klantervaring te vinden. Waar te verkrijgen Verplicht 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 gebeurtenis wordt vastgelegd door een statuswijziging op de Return Authorization record af te leiden naar een 'Afgewezen' of 'Gesloten' status zonder verdere verwerking. | ||
| Waarom het belangrijk is Het analyseren van afwijzingen helpt bij het vinden van veelvoorkomende redenen voor niet- Waar te verkrijgen 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. | ||
| Waarom het belangrijk is 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. Waar te verkrijgen Deze gebeurtenis 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 | |||
Extractiegidsen
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 retourautorisapakketecords 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 belangrijk voor het beheren van hetdatavolume.
- Resultaatkolommen voor
attributenconfigureren: Ga naar het tabblad 'Resultaten'. Voeg de volgende velden toe die deattributenin 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: ActualRefundBedrag)
- 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 specifiekegebeurtenisheeft 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
Bronsysteemgebruikt 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 verschillendegebeurtenis tijdstempels. 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
gebeurtenis timestamp-kolom. - De nieuwe, getransformeerde tabel moet kolommen bevatten zoals
ReturnCaseId,ActiviteitNaamenEventTimestamp. DeActiviteitNaamkomt van de header van de herkomsteletimestamp-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,ActiviteitNaam,EventTimestamp,Bronsysteem,LastDataUpdate, plus eventuele aanbevolenattributen. Het bestand is nu klaar vooruploadnaar ProcessMind.
Configuratie
- Zoektype: De opgeslagen zoekopdracht (Saved Search) moet een
Transactiezoekopdracht zijn. - Datumbereik: Het is belangrijk 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 zorgen. - Aangepaste velden: De nauwkeurigheid van deze extractie, vooral voor conceptuele
gebeurtenissenzoals 'Artikel Geïnspecteerd' ofattributenzoals 'Retourtype', hangt sterk af van het gebruik van aangepaste velden op transacpakketecords 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 volledige 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 Naam (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
gebeurtenissenin 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 vereisteattributen:ReturnCaseId,ActiviteitNaam,EventTimestamp,Bronsysteem,LastDataUpdate, enz. Controleer of deEventTimestampkolom een consistent datum-/tijdformaat heeft. Het bestand is nu klaar vooruploadnaar ProcessMind.
Configuratie
- Verplichten: 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 Naam) 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 belangrijk 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, KlantRefund en SalesOrd (voor uitwisselingen). Zorg ervoor dat uw proces deze standaard objecten gebruikt.
- Aangepaste veldafhankelijkheden: Activiteiten zoals 'Artikel Geïnspecteerd' en
attributenzoals '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 je systeem vinden 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%';