Skip to Content
Elido is in closed beta — APIs are stable but rate-limits and quotas may change before GA. Request access →
HandleidingenUTM templates

UTM-sjablonen

Gepland, nog niet beschikbaar; zie roadmap. UTM-sjablonen op workspaceniveau, vervanging van {{ placeholder }} en het endpoint /utm-template dat hieronder wordt beschreven, bestaan vandaag niet in de API. Wat nu werkt: een campagne slaat losse velden utm_source, utm_medium, utm_campaign, utm_content en utm_term op (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:

  1. Definieer een workspacesjabloon (je verstandige standaarden).
  2. Leg eventueel een campagnesjabloon eroverheen (overschrijvingen + extra’s).
  3. Maak links aan - Elido vult de utm_*-querystring in voordat de shortlink wordt gepubliceerd.
  4. 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

PlaceholderBronOpmerkingen
{{ channel }}veld channel op POST /v1/linksVerplicht indien gebruikt
{{ medium }}veld medium op POST /v1/links-
{{ campaign }}veld campaign, of campagnenaamValt terug op de campagne
{{ creative }}veld creative, of CSV-kolom creative-
{{ audience.segment }}Klaviyo- / Mailchimp-segment-IDOptioneel
{{ audience.locale }}Taaltag in browserstijl, bijv. de-DE-
{{ link.tag.<name> }}Tagwaarde per linkBijv. {{ 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_v2

POST 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.

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