Hvis man skal synkronisere abonnenter fra Iteras via API’et, er der en bestemt strategi som med minimalt arbejde giver god kvalitet i synkroniseringen samtidig med at den er robust så man ikke løbende manuelt kommer til at bakse med uoverensstemmelser.

Opsætning af webhook til løbende synkronisering

Første skridt er at opsætte en webserver hvor man kan modtage data over HTTPS via et webhook.

Hvis man ellers har prøvet webteknologi før, er det meget enkelt. Når der sker en ændring på en abonnent i Iteras, POST’er Iteras lidt information om ændringen til den URL man har sat op.

Webhook’et skal registreres med URL’en inde i Iteras under integrationer. Der er nogle enkelte indstillinger man kan sætte op – bl.a. kan man fortælle hvilke hændelser man vil modtage. Og man kan få webhook’et til at sende opdateret data med om de ændrede abonnenter. Dataene kommer i præcis samme format som hvis man henter data om abonnenterne via API’et.

Behandling af modtagne data

Næste skridt er skrive en lille smule kode der tager en liste af abonnent-data og bruger dem til at opdatere ens lokale database.

Det er normalt fornuftigt at operere med en hel liste ad gangen, for så kan man typisk gøre det hurtigere. Hvis man tager en ad gangen, drukner man let i ventetid på at få udført hver operation.

Når man har dette kode, kan man tage de opdaterede abonnentdata direkte fra webhooket, putte i funktionen, og så er datasynkroniseringen faktisk på plads. Hvis ens webserver skulle være nede et kort øjeblik, eller der er netværksproblemer, genoptager Iteras automatisk synkroniseringen efter nogen tid.

Det eneste der mangler, er at få opdateret ens lokale database med eksisterende abonnenter.

Fuld synkronisering via API’et

Til det formål skriver man lidt kode der spørger API’et efter at få alle abonnenterne med sideinddeling, og så for hver side med abonnenter kalder det kode man lige har skrevet til at behandle en liste af abonnenter.

Når det er på plads, starter man det op en enkelt gang, og så er man klar til drift.

Hvis der på et tidspunkt skulle gå ged et eller sted, eller man udvider synkroniseringen til at omfatte flere felter, kan man altid kalde den fulde synkronisering igen.

Jobs ud over blot opdatering af data

Der er en enkelt ting i ovenstående som man skal være opmærksom på. Iteras forventer at få svar tilbage på et webhook inden for kort tid. Det præcise tidsrum kan ses i indstillingerne for webhook’et inde i Iteras.

Der skulle være god tid til at opdatere en database, men hvis man skal have fat i en ekstern tjeneste som er langsom eller på anden måde utilregnelig, så kan det godt blive et problem at Iteras til sidst timer ud og ender med at gensende.

Så hvis man har brug for at der sker noget videre på baggrund af dataene, så skal man lokalt registrere at man skal have gjort det og så køre et uafhængigt job til at få det gjort, så man er sikker på at hurtigt at kunne svare tilbage til webhook’et.

Eksempel – send en email

Hvis man f.eks. får gemt de data man skal bruge, men også gerne vil sende en skræddersyet, hjemmelavet velkomstemail ud til nye abonnenter, så skal man ikke sende email’en mens man sidder og gemmer data.

I stedet registrerer man på abonnenten at der skal sendes en email og svarer tilbage med det samme, og så kan man starte et separat job op som leverer email til dem der mangler at få.

Det gør det i øvrigt også typisk meget lettere at teste koden og undgå fejlscenarier hvor man kommer til at sende email flere gange til de samme hvis der går noget galt.