---
title: "Guide til Shopify-integration | Tajo"
description: "Sådan forbinder Tajo en Shopify-butik med Brevo: Shopify-appens webhook-synkronisering, synkroniseringsregler, som en agent bygger og en person godkender, og Shopify-værktøjerne via MCP."
url: https://tajo.io/dk/docs/ecommerce-platforms/shopify/
markdown: https://tajo.io/dk/docs/ecommerce-platforms/shopify.md
lang: da-DK
author: "Set Noa"
author_url: https://tajo.io/dk/set-noa/
robots: noindex
---

Bed om tidlig adgang til Tajo

Indtast dit fornavn og din arbejds-e-mailadresse. Vi sender dig et link til at bekræfte din anmodning om adgang til Tajo.

# Guide til Shopify-integration

[Set Noa](https://tajo.io/dk/set-noa/)

Tajo forbinder Shopify med Brevo to steder. Tajos Shopify-app omsætter Shopify-webhooks til skrivninger i Brevo, efterhånden som de kommer ind. Synkroniseringsregler, som en agent bygger og en person godkender, flytter poster til Brevo efter en tidsplan. Denne side gennemgår begge dele og derefter de Shopify-værktøjer, Tajo stiller til rådighed via MCP.

## Forudsætninger

Før du går i gang med integrationen, skal du have:

- **En Shopify-butik** på et vilkårligt abonnement (Basic, Shopify, Advanced eller Plus)
- **En Tajo-konto** (Tajo er i early access)
- **En Brevo-konto**, som er destinationen for synkroniseringen
- **Administratoradgang** til din Shopify-butik

## Trin 1: Forbind din Shopify-butik

Tajo er i early access. Shopify-appen er ikke opført i Shopify App Store, og der er intet selvbetjent installationslink. [Kontakt teamet](https://tajo.io/dk/contact) for at komme i gang. Når dit Tajo-workspace er klar:

1. Åbn **Connections** i Tajo.
2. Indtast din butiks myshopify.com-domæne, og vælg **Connect Shopify**. Shopify viser de scopes, Tajo anmoder om, og sender dig tilbage til Tajo, når du godkender dem.
3. Se, hvad hvert scope bruges til, og hvad Tajo skriver tilbage til Shopify, i [Shopify-tilladelser forklaret](https://tajo.io/dk/resources/help/integrations/shopify-permissions-explained/).

## Trin 2: Det sender Tajos Shopify-app til Brevo

Appen verificerer hver Shopify-webhook, gemmer den, sætter den i kø og behandler den med det samme. Kunde- og produktemner venter cirka fire sekunder først. Der er intet batchvindue. Et job, der fejler, prøves igen med backoff.

### Webhook-emner

Tajos Shopify-app abonnerer på disse Shopify-webhook-emner:

| Webhook-emner | Formål |
| --- | --- |
| `customers/create`, `customers/update`, `customers/delete` | Hold Brevo-kontakter opdaterede |
| `orders/create`, `orders/updated`, `orders/fulfilled`, `orders/cancelled` | Ordrehændelser og ordremetrikker til Brevo |
| `orders/paid`, `refunds/create` | Tildel og træk loyalitetspoint |
| `checkouts/create`, `checkouts/update` | Genindfangning af forladte checkouts i Brevo |
| `products/create`, `products/update`, `products/delete` | Hold produktkataloget i Brevo opdateret |
| `inventory_levels/update` | Hold produktlageret i Brevo opdateret |
| `collections/create`, `collections/update`, `collections/delete` | Hold kollektioner opdaterede |
| `companies/*`, `company_contacts/*`, `company_locations/*` (create, update, delete) | B2B-virksomhedssynkronisering |
| `app/uninstalled`, `app/scopes_update`, `app_subscriptions/update` | Appens livscyklus |

Shopifys obligatoriske privatlivs-webhooks (anmodning om kundedata, sletning af kundedata, sletning af butiksdata) håndteres også. Appen abonnerer ikke på `carts/*`. Forladte kurve kommer fra `checkouts/*`-emnerne.

Det lander i Brevo:

| Shopify-hændelse | I Brevo |
| --- | --- |
| Kunde oprettet eller opdateret | Kontakten oprettes eller opdateres med navn, e-mail og marketingsamtykke. På betalte abonnementer tilføjer appen tags, antal ordrer, forbrugt beløb og seneste ordre. |
| Kunde slettet | Kontakten afmeldes, men slettes ikke |
| Ordre oprettet, opdateret, betalt, leveret eller annulleret | Ordren via Brevos orders-API samt hændelserne `order_paid`, `order_completed` og `order_cancelled` |
| Refusion oprettet | Hændelsen `order_refunded`. Kører du et Brevo-loyalitetsprogram via Tajo, trækkes point forholdsmæssigt. |
| Ordre betalt, med et Brevo-loyalitetsprogram | Point tildeles efter din sats for point pr. dollar |
| Checkout oprettet eller opdateret, med en e-mail og varer | Hændelserne `cart_updated` og `cart_abandoned`. Din Brevo-automatisering bestemmer, hvornår der sendes. |
| Produkt eller kollektion oprettet, opdateret eller slettet | Brevos produktkatalog og kategorier |
| Lagerniveau opdateret | Produktets lager i Brevos katalog. Når en variant går fra 0 til over 0, får hver kunde, der har bedt om besked, en `back_in_stock`-hændelse, én gang pr. genopfyldning. |

Appen tilføjer ikke en »Giv mig besked«-knap til dit tema. En anmodning om besked ved genopfyldning skal komme fra din butiksfront, for eksempel fra en knap, du selv tilføjer.

### Eksisterende data

Ved installation importerer appen dine eksisterende kunder som Brevo-kontakter. En fuld historisk synkronisering startes fra appens synkroniseringsside. På betalte abonnementer importerer den også produkter, kollektioner, virksomheder og ordrer.

## Trin 3: Byg en synkroniseringsregel med agenten

En synkroniseringsregel er en deklarativ definition af én synkronisering: en kilderessource, en Brevo-handling, en feltmapping og et filter. Du skriver den ikke selv. Du beskriver den, en agent bygger den, og en person godkender den.

1. Åbn **Agents** i Tajo, og bed **Brevo Integration Architect** om synkroniseringen med almindelige ord. For eksempel: »Send Shopify-kunder, der har accepteret e-mailmarketing, til Brevo som kontakter.«
2. Agenten undersøger Shopify-connectoren. Dens stikprøve returnerer feltnavne og -typer, aldrig kundeværdier.
3. Den foreslår en regel med en feltmapping og et filter, validerer derefter feltmappingen mod Brevos handling og laver en tørkørsel af kladden. Ingen af trinene læser kundeposter.
4. Den gemmer reglen som kladde. Du kan også starte fra en skabelon under **Connections > Syncs and mappings > New sync from template**.
5. **Request publish approval** kører en forhåndsvisning mod din butik. Den læser højst 10 poster, skriver intet til Brevo og flytter ikke cursoren. Den registrerer kun antal: hentede, egnede, mappede og af filteret afviste poster samt mappingfejl. Fejler forhåndsvisningen, oprettes der ingen godkendelse.
6. En person godkender anmodningen på siden **Approvals** med en skriftlig begrundelse. Godkendelsen er bundet til et SHA-256-digest af reglen og udløber efter 30 minutter. Regelsiden viser derefter **Publish approved version**.

Redigerer du en publiceret regel, bliver den til kladde igen. Den skal gennem forhåndsvisning og godkendelse igen, før den kører.

### En rigtig regel

Dette er skabelonen **Shopify customers -> Brevo contacts**, som Tajo definerer den:

```ts
sourceSlug: "shopify",
sourceResource: "customers",
destinationSlug: "brevo",
destinationAction: "upsert_contact",
fieldMap: [
  { source: "email", destination: "email", transform: "toLowerCase" },
  { source: "first_name", destination: "attributes.FIRSTNAME" },
  { source: "last_name", destination: "attributes.LASTNAME" },
  { source: "phone", destination: "attributes.PHONE" },
  { source: "total_spent", destination: "attributes.TOTAL_SPENT", transform: "toNumber" },
  { source: "orders_count", destination: "attributes.ORDERS_COUNT", transform: "toNumber" },
  { source: "tajo_email_marketing_consent", destination: "attributes.OPT_IN", transform: "toBoolean" },
  { source: "tags", destination: "attributes.SHOPIFY_TAGS" },
  { source: "id", destination: "attributes.SHOPIFY_ID", transform: "toString" },
  { source: "created_at", destination: "attributes.SHOPIFY_CREATED_AT" },
  { source: "updated_at", destination: "attributes.SHOPIFY_UPDATED_AT" },
],
filterExpression:
  "($json.tajo_email_marketing_consent === true) && ($json.tajo_email_suppressed === false)",
```

Filteret er samtykketjekket. Tajo udleder begge værdier fra Shopifys `email_marketing_consent.state` eller det ældre `accepts_marketing`-flag. En regel, der skriver kontakter til Brevo, kan ikke publiceres uden det. Den anden Shopify-skabelon, **Shopify orders → Brevo orders**, registrerer ordrer i Brevo for købere, der accepterede marketing ved checkout.

### Hvornår en regel kører

- Regler for kontaktsynkronisering kører som standard hvert 15. minut. Hver kørsel starter fra reglens cursor.
- Siden for en aktiv regel har knappen **Test run (1 batch)**.
- En aktiv, publiceret **Shopify orders → Brevo orders**-regel kører også hvert 15. minut. Dens første planlagte kørsel starter et par minutter før det øjeblik og sender ingen ældre ordrer. Hver senere kørsel sender de ordrer, der er opdateret siden den forrige.
- Tidligere ordrer når kun frem til Brevo, når du selv kører reglen: med **Test run (1 batch)** eller ved at bede agenten **Sync Operator** om at køre den.
- En ordreregel kører kun efter tidsplan med skabelonens filter for køberens marketingsamtykke. En regel, hvis filter er redigeret, kører kun, når du selv starter den.
- Efter fem fejlede kørsler i træk sætter reglen sig selv på pause, og dens side viser den seneste fejl. Ret årsagen, og publicer igen.

Hver kørsel står i reglens kørselshistorik med læste, skrevne og fejlede poster samt varigheden.

## Det læser og skriver Shopify-connectoren

Synkroniseringsregler skriver kun til destinationen, her Brevo. De skriver aldrig til Shopify.

Tajos Shopify-app anmoder om 12 scopes og foretager en kort række skrivninger til Shopify, for eksempel framelding af samtykke og loyalitetstags. [Shopify-tilladelser forklaret](https://tajo.io/dk/resources/help/integrations/shopify-permissions-explained/) gennemgår hvert scope og hver skrivning, og hvad der udløser den.

Agenter og MCP-værter når butikken via Shopify-connectoren:

| Læser | Skriver |
| --- | --- |
| Butiksoplysninger, kunder (liste og søgning), ordrer, produkter, kundemetafelter, lagerniveauer, status for bulkeksport | Kundemetafelter og kundetags samt start af en bulkeksport. Hver skrivning lægges klar som et forslag og kører først, når den er godkendt. |

Connectoren erklærer også en lagerjustering. Den kræver scopet `write_inventory`, som Tajos Shopify-app ikke anmoder om.

## Trin 4: Brug Shopify-værktøjerne via MCP

Tajo stiller Shopify-connectoren til rådighed som en MCP-server på `https://alto.tajo.io/mcp/connectors/shopify`. Tilføj den til Claude Code:

```bash
claude mcp add --transport http tajo-shopify https://alto.tajo.io/mcp/connectors/shopify
```

Værten finder Tajos OAuth-server og åbner Tajos login. Adgang er begrænset til early access-konti. Serveren stiller 12 værktøjer til rådighed:

| Værktøj | Det gør det |
| --- | --- |
| `preview_tajo_shopify_app` | Interaktiv forhåndsvisning af Tajos Shopify-app, vist som MCP UI |
| `get_shop` | Butikkens oplysninger |
| `search_customers` | Søg i kunder med Shopifys forespørgselssyntaks, for eksempel `tag:tajo-vip` eller `total_spent:>100` |
| `list_customers` | List kunder, sideinddelt |
| `list_orders` | List ordrer, sideinddelt |
| `list_products` | List produkter med varianter, billeder og lager |
| `get_customer_metafields` | Læs en kundes metafelter |
| `get_inventory_levels` | Læs en variants lager på tværs af lokationer |
| `poll_bulk_export` | Tjek en bulkeksport, og få dens downloadlink, når den er færdig |
| `calculate_rewards_profile` | Beregn en kundes niveau, point og belønningssaldo ud fra synkroniserede handelsdata |
| `shopify_propose` | Læg én Shopify-skrivning klar som et forslag. Intet sendes. |
| `shopify_apply` | Kør et godkendt forslag |

## Fejlfinding

- Kontakter vises ikke i Brevo: se [kontakter mangler i Brevo](https://tajo.io/dk/resources/help/troubleshooting/contacts-missing-in-brevo/).
- En regel, der ikke kører eller har sat sig selv på pause: se [data synkroniseres ikke](https://tajo.io/dk/resources/help/troubleshooting/data-not-syncing/).

## Næste skridt

- [Forstå datasynkronisering](https://tajo.io/dk/resources/help/getting-started/understanding-data-sync/), sådan opfører synkroniseringsregler sig
- [Shopify-tilladelser forklaret](https://tajo.io/dk/resources/help/integrations/shopify-permissions-explained/), hvert scope og hver skrivning
- [Shopify + Brevo](https://tajo.io/dk/docs/integrations/shopify-brevo), integrationsguiden
- [Kontakt teamet](https://tajo.io/dk/contact) for at komme i gang
