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.
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.
| Laag | Wat het bepaalt | U maakt aan |
|---|---|---|
| Session Configuration | Met welke Exact Online-administratie u verbindt en wanneer de batch draait | Eén per administratie |
| Object Configuration | Welk Salesforce-object bij welk Exact Online-endpoint hoort, en in welke richting | Eén per object en methode |
| Field Configuration | Welke velden binnen een Object Configuration worden gekoppeld | Eé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.
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
| Veld | Uitleg |
|---|---|
| Session Configuration Name | Een naam naar keuze. Wij adviseren connectornaam plus Salesforce-org, bijv. Exact Online - Resolve IT. |
| External Application | Legt vast met welk extern systeem deze Salesforce-org synchroniseert. |
| Division Code | De code van de Exact Online-administratie. Met een eigen code per sessie opent u meerdere verbindingen vanuit één Salesforce-org. |
| Division Name | Een herkenbare naam voor de administratie, handig bij meerdere administraties. |
| Cron String | Plant 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. |
| Market | Het land waar uw Exact Online-database wordt gehost, bijv. NL. |
| Start URL | De 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 Secret | Laat beide leeg. Ze worden automatisch ingevuld zodra u het record opslaat. |

De Division Code vinden
- 1
Klik in Exact Online bovenin op uw bedrijfsnaam en kies de administratie die u wilt koppelen.

- 2
Kopieer de Division Code uit de adresbalk van uw browser: het getal na
_Division_=.
💡 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
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.

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

- 3
Inloggen bij Salesforce
Log in bij Salesforce om de verbinding af te ronden. Werkt u in een Sandbox? Vervang dan eerst
login.salesforce.comin de adresbalk doortest.salesforce.com, druk op Enter en log in met uw Sandbox-gegevens.
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.

Object Configuration
Kies welke objecten u synchroniseert tussen Salesforce en Exact Online. Alleen objecten die u inschakelt, doen mee.
Exact Configuration › Object Configurations › New
| Veld | Uitleg |
|---|---|
| 1 Salesforce Object | API-naam van het Salesforce-object, bijv. Account. |
| 2 Exact Object | API-naam van de Exact Online-entiteit, bijv. Accounts. |
| 3 External ID | API-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 URL | Het 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 Active | Alleen actieve configuraties worden door de geplande batch meegenomen. |
| 6 Method | GET: 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. |

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
| Veld | Uitleg |
|---|---|
| ERP field API Name | API-naam van het veld in de Exact Online-entiteit, zoals vermeld in de API-documentatie. |
| Salesforce Field | API-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 field | Vink dit aan als de waarde uit een lookup-relatie in Salesforce komt. |
| Parent Object API | API-naam van het bovenliggende object in de lookup-relatie. |
| Parent External ID | API-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. |

Status, Salesforce-veld influx__Account_Status__c en vaste waarde C.
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.
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 Builder | Gebruik voor | |
|---|---|---|
| Exact Online Single Objects | Eén record versturen, zoals een account, adres of bankrekening | 4.1 |
| Exact Online Single Objects with output | Idem, met de respons terug in de Flow | 4.1 |
| Exact Online Nested Objects | Een kop met regels versturen, zoals een factuur, order of verkoopboeking | 4.2 |
| Exact Online Nested Objects with output | Idem, met de respons terug in de Flow | 4.2 |
| Exact Online Nested Objects - Bulk | Veel geneste records tegelijk versturen, binnen de rate limit | 4.2.1 |
| Exact Online Print Sales Invoice | Een factuur verwerken nadat deze is aangemaakt (e-mail, Peppol) | 4.3 |
| Exact Online Print Sales Invoice - Bulk | Veel facturen tegelijk verwerken | 4.3.1 |
| Exact Online - Update Single Record | Eén record direct uit Exact Online ophalen (GET) | 4.4 |


influx__Object_Configuration__c/.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
Maak een record-triggered flow op Account en voeg een asynchroon pad toe.
- 2
Stel de startvoorwaarden in. In dit voorbeeld wordt het account alleen verstuurd als
Clean Statusgelijk is aanIn Sync. Elke voorwaarde of query werkt; verstuur het record zodra het resultaat klopt.
- 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.
Outputs:
Result Details,Status Message. - 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.
| Invoer | Waarde |
|---|---|
| Salesforce Id for the Entry Record | Het ID van het factuurrecord |
| Salesforce Id for the object configuration | ID van de configuratie voor de factuur (kop) |
| Salesforce Id for the child object configuration | ID van de configuratie voor de factuurregels |
Outputs (variant with output): Exact Number, Result Details, Status Message.

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.
| Invoer | Waarde |
|---|---|
| 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.

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.
| Invoer | Uitleg |
|---|---|
| Boolean for sending invoice as email | True: Exact Online genereert de factuur en verstuurt deze per e-mail. |
| Boolean for sending invoice as Peppol | True: Exact Online verstuurt de factuur via het Peppol-netwerk. |
| Boolean for sending invoice based on account preference | True: volgt de voorkeursverzendmethode van het account in Exact Online. |
| Exact Id for the Invoice Record | Exact Online-ID van de factuur die u wilt verwerken. |
| Salesforce Id for the Invoice Record | Salesforce-ID van dezelfde factuur. |
| Salesforce Id for the Session configuration | Bepaalt tot welke administratie de factuur behoort. |
| Exact online ID for document layout | Optioneel. Legt de documentlay-out van de factuur vast. |
| Exact online ID for email layout | Optioneel. Legt de e-mailtemplate vast. |

💡 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.
4.3.1 · Verkoopfacturen in bulk verwerken
Exact Online onderbreekt meerdere gelijktijdige print-calls nog sneller dan gewone updates. De bulk-actie verwerkt elke factuur apart met een korte vertraging.
- 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.

- 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).
- 3
Voeg per groep de bulk-actie toe
Gebruik Exact Online Print Sales Invoice - Bulk met de invoer hieronder.

| Invoer | Waarde |
|---|---|
| recordIds * | Collectie met Salesforce-factuur-ID's |
| exactIds * | Collectie met Exact Online-factuur-ID's |
| sessionConfigId * | ID van de Session Configuration van deze administratie |
| documentLayout | Exact Online-ID van de documentlay-out |
| emailLayout | Exact Online-ID van de e-mailtemplate |
| sendEmailToCustomer | True / False |
| sendInvoiceViaPeppol | True / False |
| sendOutputBasedOnAccount | True / False |
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.
| Invoer | Waarde |
|---|---|
| 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).

Foutcomponent
Voeg het foutcomponent toe aan uw recordpagina's. Zo zien gebruikers direct wat er misging bij de synchronisatie, precies waar ze werken.
- 1
Open een record van het object, klik op het tandwiel en kies Edit Page om de Lightning App Builder te openen.
- 2
Zoek links onder Custom het component
viewrecorderrors.
- 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.

Het foutenlogboek lezen
Elke fout toont de melding, de herkomst (de Apex-klasse) en datum en tijd. Fouten zijn gesorteerd op prioriteit:
| Prioriteit | Voorbeeld | Gedrag |
|---|---|---|
| High | Unauthorized: de verbinding met Exact Online is niet meer geldig | Verschijnt ook als waarschuwing (toast) wanneer de recordpagina voor het eerst wordt geopend |
| Medium | Gebruikersfouten, zoals een boekingsnummer dat al in gebruik is | Zichtbaar in het component |


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.
| Code | Betekenis | Wat het zegt |
|---|---|---|
| 200 | OK | GET gelukt. Een lege lijst kan ook betekenen dat de gebruiker geen rechten heeft op die data. |
| 201 | Created | POST gelukt. |
| 204 | No Content | PUT of DELETE gelukt. |
| 400 | Bad Request | Het verzoek klopt niet. Pas de mapping aan voordat u het opnieuw probeert. |
| 401 | Unauthorized | De authenticatie is ongeldig of verlopen. |
| 403 | Forbidden | De gekoppelde gebruiker mist rechten of heeft geen toegang tot de administratie. |
| 404 | Not Found | Het opgevraagde record bestaat niet. |
| 408 | Request Timeout | Het verzoek duurde te lang. |
| 429 | Too Many Requests | De API-limieten van Exact Online zijn overschreden. |
| 500 | Internal Server Error | Meestal een functionele validatiefout vanuit Exact Online. |
| 503 | Service Unavailable | Exact 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
- Gebruik de bulk-acties (4.2.1, 4.3.1) wanneer veel records tegelijk worden verstuurd. Zie ook de API-limieten van Exact.
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.
