UTM-sjablonen
Gepland, nog niet beschikbaar; zie roadmap. UTM-sjablonen op workspaceniveau, vervanging van
{{ placeholder }}en het endpoint/utm-templatedat hieronder wordt beschreven, bestaan vandaag niet in de API. Wat nu werkt: een campagne slaat losse veldenutm_source,utm_medium,utm_campaign,utm_contentenutm_termop (zie Campagnes & A/B), de UTM-builder van het dashboard tagt een bestemmings-URL aan de clientzijde, en?utm_*dat al in een bestemmings-URL staat, blijft behouden. De rest van deze pagina is het ontwerp waar we naartoe bouwen.
Een UTM-sjabloon (gepland) is een benoemde set utm_*-standaarden die aan een
workspace of aan een enkele campagne hangt. Elke link die binnen dat bereik wordt aangemaakt
erft de variabelen van het sjabloon; overschrijvingen per link zijn toegestaan en worden
in het auditlog vastgelegd. Sjabloonvariabelen worden opgelost bij het aanmaken van de link, niet op
het moment van de klik, dus wat in je analyticstool terechtkomt is altijd wat
bedoeld was.
De flow is:
- Definieer een workspacesjabloon (je verstandige standaarden).
- Leg eventueel een campagnesjabloon eroverheen (overschrijvingen + extra’s).
- Maak links aan - Elido vult de
utm_*-querystring in voordat de shortlink wordt gepubliceerd. - Overschrijf per link als de praktijk daarom vraagt; het verschil wordt vastgelegd in het auditlog.
1. Het workspacesjabloon definiëren
curl -X PUT \
https://api.elido.app/v1/workspaces/1/utm-template \
-H "Authorization: Bearer $ELIDO_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"utm_source": "{{ channel }}",
"utm_medium": "{{ medium }}",
"utm_campaign": "{{ campaign }}",
"utm_content": "{{ creative }}",
"utm_term": "{{ audience.segment }}"
}'Een letterlijke waarde ("utm_medium": "email") staat vast voor elke link.
Een placeholder ({{ … }}) wordt ingevuld uit de payload voor het aanmaken van de link
of uit de kolom met dezelfde naam bij bulkimport.
Onbekende placeholders falen direct - de API geeft 422 terug met de
naam van de niet-opgeloste variabele.
2. Een campagnesjabloon eroverheen leggen
Campagnesjablonen erven van het workspacesjabloon en kunnen een willekeurige subset van variabelen vervangen. Handig als de campagnes van een team een andere naamgevingsconventie volgen dan de rest van de organisatie.
curl -X POST \
https://api.elido.app/v1/campaigns \
-H "Authorization: Bearer $ELIDO_TOKEN" \
-d '{
"name": "Spring 2026 - DACH",
"utm_template": {
"utm_campaign": "spring_2026_dach",
"utm_term": "{{ audience.locale }}"
}
}'Alles wat niet op de campagne is ingesteld, valt terug op de standaarden van de workspace.
3. Variabelen
| Placeholder | Bron | Opmerkingen |
|---|---|---|
{{ channel }} | veld channel op POST /v1/links | Verplicht indien gebruikt |
{{ medium }} | veld medium op POST /v1/links | - |
{{ campaign }} | veld campaign, of campagnenaam | Valt terug op de campagne |
{{ creative }} | veld creative, of CSV-kolom creative | - |
{{ audience.segment }} | Klaviyo- / Mailchimp-segment-ID | Optioneel |
{{ audience.locale }} | Taaltag in browserstijl, bijv. de-DE | - |
{{ link.tag.<name> }} | Tagwaarde per link | Bijv. {{ link.tag.team }} |
Eigen sleutels ({{ link.tag.* }}) lezen wat je ook instelt in de
tags-array van de link - handig voor multi-tenant-bureaus die een
klantidentificatie in elke URL moeten opnemen.
4. Toepassen bij bulkimport
Sjablonen worden automatisch toegepast bij bulkimports. De CSV-kolomnamen moeten overeenkomen met de placeholdernamen (niet hoofdlettergevoelig); kolommen die Elido niet herkent, worden met een waarschuwing weggelaten in plaats van stilzwijgend te worden overgenomen.
destination_url,channel,medium,creative
https://shop.example.com/de,newsletter,email,hero_a
https://shop.example.com/fr,newsletter,email,hero_a
https://shop.example.com/de,paid_social,meta,carousel_v2POST het als multipart/form-data:
curl -X POST \
https://api.elido.app/v1/links/bulk \
-H "Authorization: Bearer $ELIDO_TOKEN" \
-F "csv=@launch_q2.csv" \
-F "campaign_id=cmp_8a2f"Vandaag worden bulkrijen onafhankelijk verwerkt: een foute rij wordt gemeld en blokkeert de andere niet (er is geen atomaire alles-of-niets- commit en nog geen UTM-kolommen). Atomaire commit maakt deel uit van het geplande ontwerp.
5. Overschrijvingen per link
Elk utm_*-veld op POST /v1/links overschrijft het opgeloste
sjabloon voor die ene link. De overschrijving wordt met actor,
tijdstip en het verschil tussen opgelost en definitief in het auditlog vastgelegd, zodat je
afwijkingen weken later kunt herleiden.
curl -X POST \
https://api.elido.app/v1/links \
-H "Authorization: Bearer $ELIDO_TOKEN" \
-d '{
"destination_url": "https://shop.example.com/de/launch",
"campaign_id": "cmp_8a2f",
"utm_content": "hero_a_OVERRIDE_for_test"
}'In het dashboard worden overschreven velden getoond met een kleine ⤴-markering en de oorspronkelijke sjabloonwaarde in de tooltip.
6. Randgevallen
- Bestaande
?utm_*in de bestemmings-URL - blijft behouden. Elido overschrijft nooit parameters die je zelf in de bestemming hebt gezet. Het sjabloon vult alleen de ontbrekende velden in. - Terugkerende campagnes - kloon een campagne en verhoog het
achtervoegsel van
utm_campaign. Oude links behouden hun oorspronkelijke UTM, nieuwe links krijgen de nieuwe waarde. - Migraties vanaf andere shorteners - het
bulk-endpoint accepteert vooraf getagde URL’s ongewijzigd; het sjabloon wordt alleen toegepast op kolommen die de CSV niet al aanlevert.
Zie ook
- Campagnes & A/B - groepeer sjablonen met variantrotatie
- Conversietracking - sluit de cirkel van klik naar omzet
- Conversies doorsturen - server-side CAPI- / GA4- / Mixpanel-echo voor dezelfde UTM’s