Influx for Exact Online · Handleiding

Stel de Exact Online-connector in

Alles wat u nodig heeft om één of meer Exact Online-administraties aan Salesforce te koppelen, te bepalen welke data waarheen gaat en dat te automatiseren met Salesforce Flow.

Voordat u begint

Hoe de connector werkt

De connector configureert u volledig met records in Salesforce, in de app Exact Configuration. Drie configuratielagen bouwen op elkaar voort, en data gaat in twee richtingen.

LaagWat het bepaaltU maakt aan
Session ConfigurationMet welke Exact Online-administratie u verbindt en wanneer de batch draaitEén per administratie
Object ConfigurationWelk Salesforce-object bij welk Exact Online-endpoint hoort, en in welke richtingEén per object en methode
Field ConfigurationWelke velden binnen een Object Configuration worden gekoppeldEén per gekoppeld veld

Checklist

  • Het Influx-pakket is geïnstalleerd en u kunt de app Exact Configuration openen.
  • U heeft een Exact Online-gebruiker met rechten op de administratie(s) die u wilt koppelen.
  • Elk Salesforce-object dat u wilt synchroniseren heeft een tekstveld dat als External ID is gemarkeerd, voor het Exact Online-ID.
  • De Exact Online API-documentatie ligt klaar om endpoints en veldnamen op te zoeken.
Stap 1

Session Configuration

Richt één of meer Exact Online-administraties in en autoriseer ze met Salesforce. Dit is het startpunt: elke administratie moet veilig verbonden zijn voordat er data kan worden gesynchroniseerd.

Exact Configuration › Session Configuration › New

VeldUitleg
Session Configuration NameEen naam naar keuze. Wij adviseren connectornaam plus Salesforce-org, bijv. Exact Online - Resolve IT.
External ApplicationLegt vast met welk extern systeem deze Salesforce-org synchroniseert.
Division CodeDe code van de Exact Online-administratie. Met een eigen code per sessie opent u meerdere verbindingen vanuit één Salesforce-org.
Division NameEen herkenbare naam voor de administratie, handig bij meerdere administraties.
Cron StringPlant de batch die data ophaalt (GET) voor deze sessie. Voorbeeld, elke dag om 21:00: 0 0 21 * * ?. De helptekst van het veld toont meer opties.
MarketHet land waar uw Exact Online-database wordt gehost, bijv. NL.
Start URLDe start-URL voor die markt: NL https://start.exactonline.nl · BE https://start.exactonline.be · FR https://start.exactonline.fr · DE https://start.exactonline.de
Client ID & Client SecretLaat beide leeg. Ze worden automatisch ingevuld zodra u het record opslaat.
Session Configuration-record met naam, externe applicatie, cron string, market, division code, division name en start-URL
Een Session Configuration na opslaan. Client ID en Secret worden voor u aangemaakt.
Over Client ID en Secret: deze zijn niet bruikbaar voor andere klanten. Toegang tot uw administratie verleent u pas door in te loggen met uw eigen Exact Online-gegevens tijdens de autorisatie (hieronder). Zorg dat die gebruiker volledige toegang heeft tot alle objecten die u wilt synchroniseren.

De Division Code vinden

  1. 1

    Klik in Exact Online bovenin op uw bedrijfsnaam en kies de administratie die u wilt koppelen.

    Het bedrijvenmenu van Exact Online met een recent gebruikt bedrijf gemarkeerd
  2. 2

    Kopieer de Division Code uit de adresbalk van uw browser: het getal na _Division_=.

    Adresbalk met de division code gemarkeerd aan het einde van de URL

💡 Meerdere administraties? Maak per administratie een eigen Session Configuration. Object Configurations hangen aan een sessie, dus elke administratie krijgt zijn eigen set koppelingen.

De sessie autoriseren

Zorg dat u al bent ingelogd in Exact Online voordat u begint.

  1. 1

    Renew Token

    Klik op de nieuwe Session Configuration op Renew Token. U gaat naar de autorisatiepagina van Exact Online. Klik op Toestaan om Influx toegang te geven.

    Exact Online vraagt toestemming voor toegang tot de Exact Online-omgeving, met de knoppen Toestaan en Weigeren
  2. 2

    Kies het pakket

    Kies Influx wanneer om een pakket wordt gevraagd. Kies alleen Custom als u weet dat u een maatwerkpakket gebruikt.

    Keuzescherm 'Select the Package' met de opties Custom en Influx
  3. 3

    Inloggen bij Salesforce

    Log in bij Salesforce om de verbinding af te ronden. Werkt u in een Sandbox? Vervang dan eerst login.salesforce.com in de adresbalk door test.salesforce.com, druk op Enter en log in met uw Sandbox-gegevens.

    Adresbalk met het voorvoegsel login van login.salesforce.com gemarkeerd

De batch inplannen

Is de autorisatie klaar en de Cron String ingevuld? Open dan het tabblad Session Scheduler op de Session Configuration en klik op Session Status. Daarmee worden de batches ingepland; staan ze al gepland, dan krijgt u een melding dat de batches actief zijn. Met Reschedule Session plant u de batches opnieuw in, bijvoorbeeld nadat u de cron string heeft aangepast.

Session Configuration met het tabblad Session Scheduler en de knoppen Session Status en Reschedule Session
Stap 2

Object Configuration

Kies welke objecten u synchroniseert tussen Salesforce en Exact Online. Alleen objecten die u inschakelt, doen mee.

Exact Configuration › Object Configurations › New

VeldUitleg
1 Salesforce ObjectAPI-naam van het Salesforce-object, bijv. Account.
2 Exact ObjectAPI-naam van de Exact Online-entiteit, bijv. Accounts.
3 External IDAPI-naam van het Salesforce-veld waarin het ID uit Exact Online wordt opgeslagen. Het veld moet in de veldinstellingen als External ID zijn gemarkeerd, anders wordt het niet herkend.
4 Endpoint URLHet Exact Online-endpoint voor deze entiteit, uit de API-documentatie. Controleer dat het past bij de handeling die u wilt uitvoeren; {division} wordt vanuit de sessie ingevuld.
5 Is ActiveAlleen actieve configuraties worden door de geplande batch meegenomen.
6 MethodGET: haalt data uit Exact Online op in Salesforce. POST: maakt records aan in Exact Online. PUT: werkt bestaande records in Exact Online bij.
7 API Type (alleen GET)Het type Exact Online-API waarmee data wordt opgehaald, bijv. Sync in combinatie met een sync-endpoint.
8 Priority (alleen GET)De volgorde waarin configuraties in de nachtelijke batch draaien. Haal bovenliggende data eerst op (bijv. accounts vóór facturen), zodat relaties kunnen worden gelegd.
9 Timestamp (alleen GET)Het moment van de laatste succesvolle ophaalactie. De volgende run haalt alleen data op die daarna is gewijzigd.
Object Configuration voor Account met genummerde markeringen 1 tot 9 bij de velden
Een GET-configuratie die accounts ophaalt via het sync-endpoint. De nummers verwijzen naar de tabel hierboven.
Mapping van een GET gewijzigd? Maak dan het veld Timestamp leeg. Anders worden alleen records opgehaald die na de opgeslagen timestamp zijn gewijzigd, en krijgen bestaande records de nieuwe veldwaarden nooit.
Stap 3

Field Configuration

Bepaal per object welke velden worden meegenomen. Koppel alleen de data die ertoe doet; zo blijft de integratie snel en overzichtelijk.

Exact Configuration › Field Configurations › New

VeldUitleg
ERP field API NameAPI-naam van het veld in de Exact Online-entiteit, zoals vermeld in de API-documentatie.
Salesforce FieldAPI-naam van het Salesforce-veld dat aan het Exact-veld wordt gekoppeld. Bij POST en PUT wordt de waarde uit het record gelezen en naar Exact Online verstuurd.
Fixed value (POST / PUT)Verstuurt een vaste waarde in plaats van een veldwaarde uit het record. Handig voor standaardwaarden die voor elk record gelijk zijn.
Reference fieldVink dit aan als de waarde uit een lookup-relatie in Salesforce komt.
Parent Object APIAPI-naam van het bovenliggende object in de lookup-relatie.
Parent External IDAPI-naam van het External ID-veld op het bovenliggende object. Voorbeeld: een contact verwijst via Contact → Account → External ID naar het Exact Online-ID van het account.
Field Configuration die het Exact-veld Status koppelt aan influx__Account_Status__c, met vaste waarde C
Een gewone koppeling: Exact-veld Status, Salesforce-veld influx__Account_Status__c en vaste waarde C.
Field Configuration met Reference field aangevinkt, Parent Object API Account en Parent External ID influx__Exact_Online_ID__c
Een referentiekoppeling: het Exact-veld Account krijgt het Exact Online-ID van het gekoppelde Salesforce-account.

Een volledig overzicht van de beschikbare velden per entiteit vindt u in de Exact Online API-documentatie.

Stap 4

Salesforce Flow-acties

Data van Salesforce naar Exact Online wordt altijd gestart vanuit een Salesforce Flow. Zo bepaalt u precies wanneer en onder welke voorwaarden informatie wordt verstuurd, in lijn met uw eigen processen. De connector voegt hiervoor Apex-acties toe die u gebruikt in record-triggered flows en screen flows.

Actie in Flow BuilderGebruik voor
Exact Online Single ObjectsEén record versturen, zoals een account, adres of bankrekening4.1
Exact Online Single Objects with outputIdem, met de respons terug in de Flow4.1
Exact Online Nested ObjectsEen kop met regels versturen, zoals een factuur, order of verkoopboeking4.2
Exact Online Nested Objects with outputIdem, met de respons terug in de Flow4.2
Exact Online Nested Objects - BulkVeel geneste records tegelijk versturen, binnen de rate limit4.2.1
Exact Online Print Sales InvoiceEen factuur verwerken nadat deze is aangemaakt (e-mail, Peppol)4.3
Exact Online Print Sales Invoice - BulkVeel facturen tegelijk verwerken4.3.1
Exact Online - Update Single RecordEén record direct uit Exact Online ophalen (GET)4.4
Zoekresultaten in Flow Builder met de Exact Online-acties
Zoek op “Exact” bij het toevoegen van een Action-element.
Configuratie-ID's vinden: de acties vragen om het Salesforce-ID van een Object of Session Configuration. Open het configuratierecord en kopieer het ID uit de URL, of haal het dynamisch op met een Get Records-element in de Flow. Dat laatste raden we aan wanneer u met meerdere administraties werkt.
Object Configuration-record in Salesforce met het record-ID zichtbaar in de URL
Het record-ID is het deel van de URL na influx__Object_Configuration__c/.
Acties “with output”: deze geven de respons van Exact Online terug aan de Flow, zodat u fouten in de Flow zelf kunt afhandelen. Ze werken alleen op het asynchrone pad van een record-triggered flow (zet Add Asynchronous Path aan op het Start-element).

4.1 · Losse records versturen (POST / PUT)

Voor objecten zonder regels: accounts, adressen, bankrekeningen en vergelijkbare records. De Object Configuration die u meegeeft bepaalt of een record wordt aangemaakt (POST) of bijgewerkt (PUT).

  1. 1

    Maak een record-triggered flow op Account en voeg een asynchroon pad toe.

  2. 2

    Stel de startvoorwaarden in. In dit voorbeeld wordt het account alleen verstuurd als Clean Status gelijk is aan In Sync. Elke voorwaarde of query werkt; verstuur het record zodra het resultaat klopt.

    Record-triggered flow op Account met de actie op het pad Run Asynchronously en de startvoorwaarde Clean Status gelijk aan In Sync
  3. 3

    Voeg de actie Exact Online Single Objects with output toe. Vul bij Salesforce Id for the Entry Record het ID van het triggerende account in ({!$Record.Id}) en bij Salesforce Id for the object configuration het ID van de POST-configuratie voor Account.

    Actie Exact Online Single Objects with output met de invoervelden voor entry record en object configuration

    Outputs: Result Details, Status Message.

  4. 4

    Sla de Flow op en activeer deze. De Apex-klasse doet de rest.

4.2 · Geneste records versturen (POST / PUT)

Voor een kop met onderliggende regels: facturen met factuurregels, orders met orderregels, verkoopboekingen met boekingsregels. U geeft één configuratie mee voor de kop en één voor de regels.

InvoerWaarde
Salesforce Id for the Entry RecordHet ID van het factuurrecord
Salesforce Id for the object configurationID van de configuratie voor de factuur (kop)
Salesforce Id for the child object configurationID van de configuratie voor de factuurregels

Outputs (variant with output): Exact Number, Result Details, Status Message.

Actie Exact Online Nested Objects with output met de naam Send Invoice to Exact, gevuld vanuit Get Records-elementen
De configuratie-ID's komen uit Get Records-elementen eerder in de Flow.

4.2.1 · Geneste records in bulk versturen

Exact Online staat 60 calls per minuut toe. Met een record-triggered flow zit u daar snel boven wanneer veel records tegelijk worden verstuurd. De bulk-actie verwerkt elk record apart met een korte vertraging, zodat elk record wordt afgehandeld, ongeacht de hoeveelheid.

InvoerWaarde
recordIds *Een tekstcollectie met record-ID's, bijv. collInvoiceIdsNetherlands
objectConfigId *ID van de configuratie voor de kop
childObjectConfigId *ID van de configuratie voor de regels
exactNumberFieldApiName *Het veld waarin het EntryNumber wordt teruggeschreven dat Exact teruggeeft bij facturen, orders, verkoop- en inkoopboekingen, bijv. Name.

Outputs: message, status.

Actie Exact Online Nested Objects - Bulk met childObjectConfigId, exactNumberFieldApiName op Name, objectConfigId en recordIds als collectie
Verwerking kost tijd: records worden één voor één verwerkt. Controleer vóór het opnieuw insturen of records niet al in de wachtrij van de bulk-batch staan.

4.3 · Verkoopfacturen verwerken

Nadat een factuur met regels in Exact Online is aangemaakt (zie 4.2), moet deze nog worden verwerkt: afgedrukt, gemaild of via Peppol verstuurd. Met de actie Exact Online Print Sales Invoice legt u vast hoe.

InvoerUitleg
Boolean for sending invoice as emailTrue: Exact Online genereert de factuur en verstuurt deze per e-mail.
Boolean for sending invoice as PeppolTrue: Exact Online verstuurt de factuur via het Peppol-netwerk.
Boolean for sending invoice based on account preferenceTrue: volgt de voorkeursverzendmethode van het account in Exact Online.
Exact Id for the Invoice RecordExact Online-ID van de factuur die u wilt verwerken.
Salesforce Id for the Invoice RecordSalesforce-ID van dezelfde factuur.
Salesforce Id for the Session configurationBepaalt tot welke administratie de factuur behoort.
Exact online ID for document layoutOptioneel. Legt de documentlay-out van de factuur vast.
Exact online ID for email layoutOptioneel. Legt de e-mailtemplate vast.
Actie Exact Online Print Sales Invoice met alleen de factuur-ID's en de Session Configuration ingeschakeld
Een minimale instelling: alleen de factuur-ID's en de Session Configuration.
Voorwaarden voor Peppol: het OIN-nummer van de klant moet op het account in Exact Online staan en gevalideerd zijn, en e-facturatie en de Peppol-registratie moeten zijn afgerond in de algemene instellingen van Exact Online.

💡 Voor document- en e-maillay-outs heeft u de Exact Online-ID's nodig. Haal de lay-outs eerst op in Salesforce (met een GET-configuratie) en verwijs er daarna naar in de Flow.

Exact Online onderbreekt meerdere gelijktijdige print-calls nog sneller dan gewone updates. De bulk-actie verwerkt elke factuur apart met een korte vertraging.

  1. 1

    Groepeer facturen per verwerkingsmethode

    De instellingen van de bulk-actie gelden voor elke factuur in de collectie. Maak daarom één collectie per combinatie, bijvoorbeeld Nederlandse entiteit via Peppol en Belgische entiteit via e-mail. Een Loop met een Decision per entiteit en methode werkt goed.

    Flow-loop over geselecteerde facturen met een Decision naar NL Peppol, NL Email, BE Peppol en BE Email
  2. 2

    Vul per groep twee tekstcollecties

    Gebruik Assignment-elementen: één collectie voor de Salesforce-record-ID's (bijv. collInvoiceIdsNLPeppol) en één voor de Exact-ID's (bijv. collInvoiceExactIdsNLPeppol).

    Assignment-element dat record-ID en Exact-ID van de huidige factuur aan twee collecties toevoegt
  3. 3

    Voeg per groep de bulk-actie toe

    Gebruik Exact Online Print Sales Invoice - Bulk met de invoer hieronder.

    Actie Exact Online Print Sales Invoice - Bulk met collecties voor exactIds en recordIds, sessie, lay-outs en Peppol op True
InvoerWaarde
recordIds *Collectie met Salesforce-factuur-ID's
exactIds *Collectie met Exact Online-factuur-ID's
sessionConfigId *ID van de Session Configuration van deze administratie
documentLayoutExact Online-ID van de documentlay-out
emailLayoutExact Online-ID van de e-mailtemplate
sendEmailToCustomerTrue / False
sendInvoiceViaPeppolTrue / False
sendOutputBasedOnAccountTrue / False
Verwerking kost tijd: facturen worden één voor één verwerkt. Controleer vóór het opnieuw insturen of ze niet al in de wachtrij van de print-batch staan.

4.4 · Eén record ophalen via Flow (GET)

GET-configuraties draaien normaal via de geplande batch (zie de cron string in stap 1). Heeft u direct actuele data uit Exact Online nodig? Gebruik dan de actie Exact Online - Update Single Record om één record op te halen.

InvoerWaarde
exactId *Het Exact Online-ID dat op het Salesforce-record staat
exactIdFieldName *API-naam van het veld dat het record in Exact Online identificeert, bijv. ID
objectConfigurationId *ID van de Object Configuration met de GET-methode
salesforceId *ID van het Salesforce-record dat wordt bijgewerkt

Outputs: exactId, message, salesforceId, success (true/false).

Actie Exact Online - Update Single Record met exactId, exactIdFieldName op ID, objectConfigurationId en salesforceId
Stap 5

Foutcomponent

Voeg het foutcomponent toe aan uw recordpagina's. Zo zien gebruikers direct wat er misging bij de synchronisatie, precies waar ze werken.

  1. 1

    Open een record van het object, klik op het tandwiel en kies Edit Page om de Lightning App Builder te openen.

  2. 2

    Zoek links onder Custom het component viewrecorderrors.

    Het component viewrecorderrors in de lijst met custom componenten
  3. 3

    Sleep het naar de pagina. Bovenaan in de rechterkolom blijven fouten goed zichtbaar, maar kies vooral de plek die bij uw gebruikers past. Sla de pagina op en activeer deze.

    Factuurpagina met het Error log-component in de rechterkolom, met de secties High en Medium

Het foutenlogboek lezen

Elke fout toont de melding, de herkomst (de Apex-klasse) en datum en tijd. Fouten zijn gesorteerd op prioriteit:

PrioriteitVoorbeeldGedrag
HighUnauthorized: de verbinding met Exact Online is niet meer geldigVerschijnt ook als waarschuwing (toast) wanneer de recordpagina voor het eerst wordt geopend
MediumGebruikersfouten, zoals een boekingsnummer dat al in gebruik isZichtbaar in het component
Uitgeklapt Error Log met een High-fout 'Authorization failed' en een Medium-fout 'In use: Entry number'
Recordpagina met een oranje waarschuwing dat er een fout is opgetreden vanuit de API, en het Error Log-component
Een fout met hoge prioriteit verschijnt ook als waarschuwing.
Automatisch opgeruimd: foutmeldingen worden na 14 dagen automatisch verwijderd, en verdwijnen zodra een transactie op hetzelfde record wel slaagt.
Naslag

Responscodes & oplossingen

De Exact Online-API geeft bij elke call een HTTP-statuscode terug. Het foutcomponent toont deze code samen met de melding van Exact.

CodeBetekenisWat het zegt
200OKGET gelukt. Een lege lijst kan ook betekenen dat de gebruiker geen rechten heeft op die data.
201CreatedPOST gelukt.
204No ContentPUT of DELETE gelukt.
400Bad RequestHet verzoek klopt niet. Pas de mapping aan voordat u het opnieuw probeert.
401UnauthorizedDe authenticatie is ongeldig of verlopen.
403ForbiddenDe gekoppelde gebruiker mist rechten of heeft geen toegang tot de administratie.
404Not FoundHet opgevraagde record bestaat niet.
408Request TimeoutHet verzoek duurde te lang.
429Too Many RequestsDe API-limieten van Exact Online zijn overschreden.
500Internal Server ErrorMeestal een functionele validatiefout vanuit Exact Online.
503Service UnavailableExact Online is tijdelijk niet beschikbaar.
400 Bad request
  • Verplicht filter ontbreekt: sommige endpoints vereisen bij GET een $filter-parameter. Controleer het endpoint in de API-documentatie.
  • Verkeerd datatype: bijv. een GUID vergeleken met een getal. Controleer de veldtypen in uw Field Configuration.
  • Ongeldige property: een ERP field API Name bestaat niet op die entiteit. Controleer spelling en hoofdletters.
  • Token te vroeg vernieuwd: een access token is 10 minuten geldig en kan pas na 570 seconden worden vernieuwd. Wacht even en probeer het opnieuw.
401 Unauthorized
  • Het access- of refresh-token is verlopen of al gebruikt. Autoriseer de Session Configuration opnieuw via Renew Token.
  • Er zijn meerdere autorisaties gestart voor dezelfde verbinding; alleen de laatste is geldig. Autoriseer één keer opnieuw.
403 Forbidden
  • Onvoldoende rechten: controleer de rechten van de gekoppelde gebruiker in Exact Online onder Mijn Exact Online › Rechten.
  • Verkeerde administratie: controleer de Division Code op de Session Configuration.
  • Administratie niet toegestaan voor de app: voeg het bedrijf toe via Mijn Exact Online › Beveiligingscentrum › machtigingen van mijn apps.
  • Inactieve gebruiker: activeer de gekoppelde gebruiker opnieuw in Exact Online.
  • Administratie geblokkeerd of gearchiveerd: wacht bij een back-up of databaseverhuizing tot het proces klaar is. Gearchiveerde administraties zijn niet bereikbaar.
  • Licentie: niet elk endpoint is beschikbaar in elk Exact Online-pakket. Controleer het endpoint in de API-documentatie.
408 Timeout
  • Het verzoek is te breed of de administratie is erg groot. Map minder velden of gebruik de sync-endpoints van Exact voor grote GET-volumes.
429 Too many requests
500 Internal server error
  • Meestal dezelfde validatiefout die een gebruiker ook in Exact Online zelf zou zien, bijv. een record dat niet verwijderd kan worden omdat het elders in gebruik is. Lees de melding in het foutcomponent.
  • Een algemene melding als “A problem has occurred” wijst meestal op een probleem bij Exact. Meld dit bij Exact API Support met het referentienummer (binnen 24 uur).
503 Service unavailable
  • Exact Online voert dagelijks onderhoud uit tussen 04:00 en 04:30 (CET). Plan de batch niet in dat tijdvak.
  • Probeer het anders later opnieuw.

Hulp nodig?

Onze consultants helpen u graag met de inrichting van de connector.