Processorconstanten
Eén endpoint om een waarde waar je integratie mee werkt actueel te houden vanuit je eigen systeem — een lijst in een Google Sheet, een prijstabel, een set codes die om de paar weken verandert.
PUT /source-processors/{id}/constants/{name}vervangt de waarde van één constante op één koppeling tussen een bron en een processor.
De spec van een processor declareert zijn constanten; de waarde staat op elke koppeling tussen een bron en die processor. Dit endpoint zet die waarde en verder niets. Het kan veranderen wat een processor krijgt, nooit wat de processor doet.
De URL vinden
Open de provider in de admin, ga naar de Bronnen en bewerk de bron. Onder elke constante van een gekoppelde processor staat in het venster de volledige URL, met de juiste id al ingevuld. Die id is die van de koppeling, niet van de bron of de processor: een processor die door twee bronnen wordt gevoed heeft twee koppelingen, en elk houdt zijn eigen waarden.
Een constante zetten
PUT /integrations/api/v1/source-processors/12/constants/producten_van_de_maand
Content-Type: application/json{
"value": [
{ "start": "2026-10-01", "end": "2026-11-29", "products": ["ART123", "ART456"] },
{ "start": "2026-11-15", "end": "2027-01-14", "products": ["ART789"] }
]
}{
"name": "producten_van_de_maand",
"value": [ … ]
}value mag tekst zijn, een getal, een lijst of een object, en elke tekst erin — ook diep genest — wordt opgeschoond zoals SalesDash alle invoer opschoont: spaties eromheen verdwijnen, een lege tekst wordt opgeslagen als leeg (null), en "true"/"false" worden true/false. Een geplakte code met een losse spatie matcht dus nog steeds, en een lege datumcel stopt het record zichtbaar in plaats van als een of andere datum gelezen te worden. Elke aanroep vervangt de hele waarde — er wordt niets samengevoegd — dus stuur altijd de complete lijst, niet alleen de regel die veranderde. Daardoor kun je de aanroep ook veilig herhalen: stuur je dezelfde lijst twee keer, dan verandert er niets.
Het volgende record dat de processor verwerkt, leest de nieuwe waarde. Records die al verwerkt zijn, worden niet opnieuw verwerkt omdat de waarde veranderde; die krijgen hem pas als de bron ze opnieuw aanlevert.
| Antwoord | Wanneer |
|---|---|
| 200 | De waarde is opgeslagen. |
| 404 | Er is geen koppeling met deze id. |
422 op name | De spec van de processor declareert geen constante met deze naam — controleer de spelling tegen de spec. |
422 op value | value ontbreekt; of de constante is verplicht en je stuurde een lege waarde (null, "" of []); of de waarde is als JSON groter dan 64 KB. |
Een verplichte constante kun je niet leegmaken
Heeft een verplichte constante geen waarde, dan stopt de processor bij elk record dat binnenkomt. Daarom wordt een lege waarde geweigerd in plaats van opgeslagen: een script dat per ongeluk een lege sheet leest krijgt een 422, en de processor draait door op de laatste lijst die hij kreeg.
Wat het laatst opslaat, wint
Een admin kan de waarde ook aanpassen in het bewerkvenster van de bron. SalesDash bewaart van geen van beide een geschiedenis: de laatste keer opslaan, vanuit het venster of vanuit je script, is de waarde. Opslaan in het venster schrijft elke constante terug zoals hij was toen het venster openging — staat het venster open terwijl je script een push doet, en sla je daarna op om iets anders te wijzigen, dan staat de oude lijst er weer. Sluit het venster eerst en open het opnieuw.
Vanuit een Google Sheet
Een Apps Script in Google Sheets kan de sheet doorsturen zodra hij wordt aangepast. Twee dingen gaan vaak mis:
- Gebruik een installeerbare "Bij bewerken"-trigger, geen functie die
onEditheet. Een eenvoudige trigger mag geen andere diensten aanroepen, dus zijn verzoek komt nooit buiten de sheet. - Formatteer datums zelf. Een datumcel komt in het script binnen als
Datein de tijdzone van het script;toISOString()zet hem om naar UTC en kan hem een dag terugzetten. GebruikUtilities.formatDate(date, 'Europe/Amsterdam', 'yyyy-MM-dd').
Bewaar de API-key in de Scripteigenschappen van het script, niet in de code, en log response.getResponseCode() zodat een mislukte push zichtbaar wordt bij de uitvoeringen van het script.