Om man ska synkronisera prenumeranter från Iteras via API:et finns det en strategi som med minimalt arbete ger hög kvalitet i synkroniseringen samtidigt som den är robust så att man inte löpande manuellt behöver brottas med avvikelser.
Konfiguration av webhook för löpande synkronisering
Första steget är att sätta upp en webbserver där man kan ta emot data över HTTPS via en webhook.
Om man har provat webbteknik tidigare är det här mycket enkelt. När det sker en ändring på en prenumerant i Iteras POST:ar Iteras lite information om ändringen till den URL man har satt upp.
Webhooken ska registreras med URL:en inne i Iteras under integrationer. Det finns några få inställningar man kan göra – bl.a. kan man ange vilka händelser man vill ta emot. Och man kan få webhooken att skicka med uppdaterade data om de ändrade prenumeranterna. Datan kommer i exakt samma format som när man hämtar data om prenumeranterna via API:et.
Bearbetning av mottagna data
Nästa steg är att skriva lite kod som tar en lista med prenumerantdata och använder dem för att uppdatera den lokala databasen.
Det är normalt vettigt att arbeta med en hel lista åt gången, för då kan man vanligtvis göra det snabbare. Om man tar en i taget drunknar man lätt i väntetid för att få varje operation utförd.
När man har denna kod kan man ta de uppdaterade prenumerantdatan direkt från webhooken, lägga in i funktionen, och då är datasynkroniseringen faktiskt på plats. Om webbservern skulle ligga nere en kort stund, eller om det är nätverksproblem, återupptar Iteras automatiskt synkroniseringen efter en tid.
Det enda som saknas är att uppdatera den lokala databasen med befintliga prenumeranter.
Fullständig synkronisering via APIet
För detta skriver man lite kod som hämtar alla prenumeranter via API:et med sidindelning, och för varje sida med prenumeranter anropar man koden man just skrev för att bearbeta en lista med prenumeranter.
När det är på plats startar man det en gång, och sedan är man redo för drift.
Om det vid något tillfälle skulle strula någonstans, eller om man utökar synkroniseringen till att omfatta fler fält, kan man alltid köra den fullständiga synkroniseringen igen.
Du måste svara ganska snabbt
Det finns en sak i ovanstående som man ska vara uppmärksam på. Iteras förväntar sig att få svar tillbaka på en webhook inom kort tid. Den exakta tidsgränsen kan ses i inställningarna för webhooken inne i Iteras.
Det bör finnas gott om tid att uppdatera en lokal databas, men om man behöver nå en extern tjänst som är långsam eller på annat sätt opålitlig kan det bli ett problem att tidsgränsen går ut i Iteras och att den till slut skickar igen.
Så om man behöver att något mer sker baserat på datan, ska man lokalt registrera att det ska göras och sedan köra ett fristående jobb för att få det gjort, så att man säkert snabbt kan svara tillbaka till webhooken.
Exempel – skicka ett e-postmeddelande
Om man t.ex. har sparat den data man behöver men också gärna vill skicka ett skräddarsytt, egenbyggt välkomstmejl till nya prenumeranter, ska man inte skicka mejlet medan man sitter och sparar data.
I stället registrerar man på prenumeranten att ett e-postmeddelande ska skickas och svarar tillbaka direkt, och sedan kan man starta ett separat jobb som levererar e-post till dem som ännu inte har fått det.
Det gör det dessutom ofta mycket enklare att testa koden och undvika felscenarier där man råkar skicka e-post flera gånger till samma personer om något går fel.