Contents

the email tool that makes email marketing simple

Sign Up FreeNo credit card required.
maildroppa-promo-notebookmaildroppa-promo-spaceship

Konfigurisanje vebhokova

Published: · Last updated: · By

In brief

Saznajte kako da kreirate Maildroppa webhook krajnje tačke, izaberete događaje, proverite potpise, bezbedno testirate isporuke i ponovite događaje.

Vebhokovi omogućavaju Maildroppi da obavesti drugu aplikaciju kada se u vašem nalogu dogodi nešto važno.

Umesto da iznova pitate Maildroppu da li je pretplatnik kreiran, ažuriran, odjavljen ili mu je dodeljena oznaka, vaša aplikacija može da primi HTTPS zahtev ubrzo nakon što se događaj dogodi.

Stranica Vebhokovi je centralno mesto za ovu integraciju na nivou naloga. Možete kreirati više krajnjih tačaka, izabrati događaje koje svaka krajnja tačka prima, dodati zaglavlja za autentifikaciju, testirati vezu, pregledati pokušaje isporuke i po potrebi ponovo poslati događaj iz produkcije.

Vebhokovi: kompletna stranica vebhokova

Kako funkcionišu vebhokovi naloga

Vebhok naloga prati ovaj proces:

  1. U Maildroppi se dogodi događaj, na primer kreiranje pretplatnika.
  2. Maildroppa pronalazi svaku aktivnu krajnju tačku koja je pretplaćena na taj događaj.
  3. Maildroppa kreira jednu isporuku za svaku odgovarajuću krajnju tačku.
  4. JSON sadržaj se potpisuje tajnom za potpisivanje vebhokova vašeg naloga.
  5. Maildroppa šalje HTTPS POST zahtev na sačuvani URL krajnje tačke.
  6. Vaša krajnja tačka proverava potpis, čuva ili obrađuje događaj i vraća HTTP odgovor.
  7. Maildroppa beleži rezultat u istoriji isporuke i automatski ponavlja privremeno neuspele pokušaje.

Ako je više krajnjih tačaka pretplaćeno na isti događaj, svaka krajnja tačka dobija sopstvenu isporuku. Poslovni događaj ima isti ID događaja za sve njih, dok svaka isporuka ima sopstveni ID isporuke.

Vebhokovi naloga razlikuju se od koraka „Pošalji vebhok“ unutar automatizacije. Vebhokovi naloga osluškuju izabrane događaje na nivou celog naloga u Maildroppi. Vebhok automatizacije šalje se samo kada pretplatnik stigne do tog konkretnog koraka. Oba koriste tajnu za potpisivanje vebhokova naloga, pa promena tajne utiče na svaki prijemnik odlaznih vebhokova koji proverava Maildroppa potpise.

Otvaranje stranice Vebhokovi

Otvorite „Podešavanja“, proširite „Programeri“ i izaberite „Vebhokovi“.

Stranica sadrži tri glavne oblasti:

  • Tajna za potpisivanje
  • Krajnje tačke
  • Istorija isporuke za izabranu krajnju tačku

Kada imate više od jedne krajnje tačke, izaberite red krajnje tačke da biste prikazali njenu istoriju isporuke. Ako nijednu niste izričito izabrali, Maildroppa prikazuje istoriju prve krajnje tačke na listi.

Pre nego što kreirate krajnju tačku

Pripremite prijemnik na svom serveru pre konfigurisanja Maildroppe. Prijemnik treba da:

  • Bude dostupan preko javnog HTTPS URL-a.
  • Prihvata POST zahteve sa telom application/json.
  • Čuva neobrađeno telo zahteva dok se ne proveri Maildroppa potpis.
  • Vraća status 2xx tek nakon što je događaj bezbedno prihvaćen.
  • Idempotentno obrađuje ponovljene isporuke koristeći ID događaja.
  • Brzo odgovara umesto da tokom zahteva obavlja spore operacije.

Pouzdan obrazac je da proverite zahtev, sačuvate ID događaja i sadržaj u trajnom redu ili bazi podataka, vratite 200 ili 204, a zatim asinhrono obradite poslovnu radnju.

Ne izlažite razvojni računar, adresu lokalne mreže ili nezaštićenu skriptu kao produkcioni prijemnik vebhokova. Maildroppa prihvata samo javne HTTPS ciljeve i ponovo proverava odredište prilikom slanja isporuke.

Korak 1: Generisanje tajne za potpisivanje

Svaki Maildroppa vebhok zahtev je potpisan. Vaš prijemnik koristi tajnu za potpisivanje da proveri da li je zahtev kreirala Maildroppa i da li telo nije izmenjeno tokom prenosa.

Na vrhu stranice panel Tajna za potpisivanje prikazuje jedno od sledećih stanja:

  • Nedostaje — Tajna za potpisivanje još ne postoji.
  • Spremno — Tajna za potpisivanje je konfigurisana.
  • Učitavanje — Maildroppa preuzima trenutno stanje.

Kliknite na „Generiši tajnu“ kada je status Nedostaje.

Maildroppa odmah prikazuje novu tajnu. Počinje sa whsec_. Kliknite na „Kopiraj“ i sačuvajte je u menadžeru tajni ili zaštićenoj konfiguraciji okruženja koju koristi vaš prijemnik.

Cela vrednost prikazuje se samo neposredno nakon generisanja ili promene tajne. Kada ponovo učitate stranicu ili je napustite, Maildroppa prikazuje samo da tajna postoji i kada je poslednji put ažurirana. Sačuvanu tajnu više ne otkriva.

Vebhokovi: nova tajna za potpisivanje

Ako izgubite tajnu

Ako prijemnik više nema važeću tajnu, kliknite na „Promeni tajnu“ i sačuvajte nov prikazani podatak.

Promena odmah zamenjuje prethodnu tajnu. Maildroppa ne čuva obe vrednosti tokom prelaznog perioda. Ažurirajte svaki prijemnik koji koristi ovu tajnu naloga pre slanja novih testova ili oslanjanja na produkcione isporuke.

Nove isporuke, zakazana ponavljanja, testovi i ponovna slanja potpisuju se važećom tajnom u trenutku HTTP zahteva. To znači da isporuka kreirana pre promene može biti potpisana novom tajnom kada se kasnije pokuša njeno slanje.

Tretirajte tajnu kao lozinku

Ne stavljajte tajnu za potpisivanje u kôd pregledača, javni repozitorijum, URL, stranicu sa greškom ili običan dnevnik aplikacije.

Samo prijemniku na serveru potrebna je tajna. Ako verujete da je otkrivena, promenite je i odmah ažurirajte sve prijemnike.

Provera potpisa vebhoka

Svaki zahtev sadrži sledeća Maildroppa zaglavlja:

  • X-Maildroppa-Event-Id — Identifikuje poslovni događaj.
  • X-Maildroppa-Delivery-Id — Identifikuje ovu konkretnu isporuku.
  • X-Maildroppa-Timestamp — Vreme potpisivanja u Unix sekundama.
  • X-Maildroppa-Signature — HMAC potpis sa verzijom.

Maildroppa takođe šalje:

  • Content-Type: application/json
  • User-Agent: Maildroppa-Webhooks/1.0

Potpis ima sledeći format:

v1=<lowercase hexadecimal HMAC>

Maildroppa ga kreira pomoću HMAC-SHA256. Potpisani sadržaj čine vremenska oznaka, tačka i tačno neobrađeno JSON telo zahteva:

<timestamp>.<raw request body>

Koristite tajnu za potpisivanje kao HMAC ključ.

Sledeći Node.js primer prikazuje osnovni korak provere. rawBody mora biti originalni niz bajtova zahteva, a ne JSON koji je već raščlanjen i ponovo serijalizovan.

import crypto from 'node:crypto';

export function verifyMaildroppaWebhook({ rawBody, timestamp, signature, signingSecret }) {
  const signedPayload = Buffer.concat([Buffer.from(`${timestamp}.`, 'utf8'), rawBody]);

  const expectedSignature = `v1=${crypto
    .createHmac('sha256', signingSecret)
    .update(signedPayload)
    .digest('hex')}`;

  const received = Buffer.from(signature, 'utf8');
  const expected = Buffer.from(expectedSignature, 'utf8');

  return received.length === expected.length && crypto.timingSafeEqual(received, expected);
}

Nakon provere potpisa, uporedite i vremensku oznaku sa vremenom servera. Odbijte zahteve izvan kratkog odstupanja izabranog za vašu infrastrukturu, na primer pet minuta. Time se smanjuje rizik da kasnije bude ponovljen uhvaćen važeći zahtev.

JSON raščlanjujte i obrađujte tek nakon što obe provere prođu.

Uobičajeni uzroci grešaka potpisa

Potpis najčešće ne uspeva iz jednog od sledećih razloga:

  • Prijemnik koristi staru tajnu nakon promene.
  • Mejnlver je raščlanio ili izmenio JSON pre izračunavanja potpisa.
  • Prijemnik potpisuje samo telo i izostavlja <timestamp>..
  • Vremenska oznaka se tretira kao formatirani datum umesto kao tačna vrednost zaglavlja.
  • Prefiks v1= izostavljen je iz poređenja.
  • Izračunati HMAC kodiran je drugačije umesto malim heksadecimalnim slovima.

Kada provera ne uspe, zabeležite ID događaja i ID isporuke, ali nikada ne beležite tajnu za potpisivanje ni osetljive vrednosti prilagođenih zaglavlja.

Korak 2: Dodavanje krajnje tačke

Kliknite na „Dodaj krajnju tačku“ u odeljku Krajnje tačke.

Editor sadrži četiri dela:

  • URL krajnje tačke
  • Događaji
  • Prilagođena zaglavlja
  • Aktivni status

Nove krajnje tačke počinju kao aktivne, a svi događaji prikazani u editoru u početku su izabrani. Pregledajte izbor pre čuvanja kako bi prijemnik dobijao samo obaveštenja koja su mu zaista potrebna.

Vebhokovi: dijalog za dodavanje krajnje tačke

Konfigurisanje URL-a krajnje tačke

Unesite potpun javni URL koji treba da prima Maildroppa zahteve, na primer:

https://integrations.example.com/webhooks/maildroppa

URL mora ispunjavati sledeće zahteve:

  • Mora koristiti https://.
  • Mora sadržati važeće javno ime hosta.
  • Može imati najviše 2.048 znakova.
  • Ne sme sadržati promenljive šablona sa { ili }.
  • Ne sme sadržati korisničko ime ili lozinku pre imena hosta.
  • Ne sme sadržati fragment URL-a koji počinje sa #.
  • Mora koristiti standardni HTTPS port 443.
  • Ne sme koristiti localhost, sirovu IP adresu ili ime hosta koje se razrešava na blokiranu privatnu ili rezervisanu mrežu.

Parametri upita su podržani, ali ne stavljajte API ključeve ili druge tajne u URL. URL-ovi su vidljivi na listi krajnjih tačaka i u podacima o isporuci. Umesto toga koristite prilagođeno zaglavlje za akreditive.

Maildroppa ne prati preusmeravanja. Sačuvajte konačno HTTPS odredište umesto URL-a koji vraća 301, 302, 307 ili 308.

Ime hosta odredišta ponovo se razrešava pre slanja. Ime hosta koje se kasnije razreši na privatnu ili blokiranu adresu biće odbijeno čak i ako je bilo važeće kada je krajnja tačka sačuvana.

Izbor događaja

Izaberite najmanje jedan događaj. Krajnja tačka prima samo tipove događaja izabrane u njenom editoru.

Stranica nudi sledeće izbore događaja:

Pretplatnik kreiran — subscriber.created

Šalje se kada se pretplatnik kreira u Maildroppa nalogu.

Koristite ovaj događaj da kreirate odgovarajući kontakt u CRM-u, platformi za korisničke podatke, internoj bazi ili drugom sistemu koji vodi računa o dozvolama.

Ne tumačite ovaj događaj kao dokaz da je svaka prijava završila dvostruku potvrdu (Double Opt-in). Status pretplatnika u sadržaju opisuje trenutno stanje.

Pretplatnik ažuriran — subscriber.updated

Šalje se kada se promene ugrađene informacije o pretplatniku ili vrednosti prilagođenih polja.

Koristite kompletan objekat pretplatnika u sadržaju kao trenutni Maildroppa prikaz. Nemojte pretpostavljati da se promenilo samo jedno određeno svojstvo.

Dodeljivanje i uklanjanje oznaka imaju sopstvene tipove događaja kako bi se mogli obrađivati zasebno.

Pretplatnik odjavljen — subscriber.unsubscribed

Šalje se kada pretplatnik pređe u stanje odjavljenog putem radnje odjave.

Koristite ovaj događaj da ograničite kontakt u povezanim sistemima. Nemojte automatski ponovo prijaviti osobu zato što je drugi sistem i dalje označava kao aktivan kontakt.

Oznaka dodata — subscriber.tag_added

Šalje se kada se pretplatniku dodeli oznaka.

Sadržaj sadrži pretplatnika i oznaku obuhvaćene ovom konkretnom promenom.

Oznaka uklonjena — subscriber.tag_removed

Šalje se kada se oznaka ukloni sa pretplatnika.

Sadržaj sadrži ažuriranog pretplatnika i uklonjenu oznaku. Uklonjena oznaka navodi se zasebno iako više nije prisutna u trenutnom nizu tags pretplatnika.

Obrazac poslat — form.submitted

Šalje se kada posetilac pošalje Maildroppa obrazac za prijavu.

Tretirajte ovo kao signal slanja obrasca, a ne kao potvrdu da je dvostruka potvrda (Double Opt-in) završena. Svaki tok rada koji zahteva potvrđenu pretplatu mora i dalje poštovati trenutni status pretplatnika i proces potvrde.

Koristite zasebne krajnje tačke kada se odgovornosti razlikuju

Možete slati različite događaje različitim sistemima. Na primer:

  • Šaljite događaje o pretplatnicima i oznakama u CRM.
  • Šaljite događaje o odjavi servisu za potiskivanje.
  • Šaljite događaje o slanju obrazaca analitičkom sistemu.

Zasebne krajnje tačke smanjuju nepotreban saobraćaj i olakšavaju dijagnostikovanje grešaka. Svaka krajnja tačka ima sopstveni izbor događaja, URL, prilagođena zaglavlja, aktivni status, testove i istoriju isporuke.

Dodavanje prilagođenih zaglavlja

Prilagođena zaglavlja su opciona. Koristite ih kada prijemnik zahteva API ključ, bearer token, identifikator zakupca ili drugo fiksno zaglavlje.

Kliknite na „Dodaj zaglavlje“, a zatim unesite naziv zaglavlja i vrednost zaglavlja. Primeri odgovarajućih vrednosti uključuju:

Authorization: Bearer your-token

X-Integration-Key: your-secret-key

Možete dodati najviše 20 prilagođenih zaglavlja.

Nazivi zaglavlja:

  • Obavezni su.
  • Mogu sadržati najviše 128 znakova.
  • Moraju koristiti važeće znakove za nazive HTTP zaglavlja.
  • Moraju biti jedinstveni bez obzira na velika i mala slova.

Vrednosti zaglavlja:

  • Obavezne su.
  • Mogu sadržati najviše 2.000 znakova.
  • Ne smeju sadržati prelome reda.

Sledeći nazivi su rezervisani i ne mogu biti zamenjeni prilagođenim zaglavljem:

  • Content-Type
  • Content-Length
  • Host
  • User-Agent
  • Bilo koji naziv koji počinje sa X-Maildroppa-

Time se sprečava da prilagođena vrednost zameni Maildroppa zaglavlja za isporuku i potpis.

Kako se čuvaju tajne u zaglavljima

Maildroppa šifruje vrednosti prilagođenih zaglavlja pre čuvanja. Sačuvane vrednosti se pregledaču ne vraćaju u čitljivom obliku.

Kada kasnije uređujete krajnju tačku, polje vrednosti prikazuje „Sačuvana vrednost ostaje“. Ostavite ga praznim kada postojeća tajna treba da ostane nepromenjena. Unesite novu vrednost da biste je zamenili.

Ako promenite naziv zaglavlja, ponovo unesite vrednost. Maildroppa čuva sačuvanu tajnu samo dok njen prvobitni naziv zaglavlja ostaje nepromenjen.

Uklanjanjem reda zaglavlja uklanja se to zaglavlje iz budućih isporuka nakon čuvanja krajnje tačke.

Vrednosti prilagođenih zaglavlja tretiraju se kao osetljive u sačuvanim informacijama o zahtevima. U istoriji isporuke su maskirane, a ne prikazane.

Podešavanje aktivne ili neaktivne krajnje tačke

Ostavite „Aktivno“ izabrano kada je krajnja tačka spremna da odmah prima događaje.

Poništite izbor kada želite da sačuvate konfiguraciju bez pokretanja isporuka. Krajnju tačku možete kasnije aktivirati sa liste krajnjih tačaka.

Neaktivna krajnja tačka:

  • Ne prima novonastale događaje.
  • Ne može da pošalje testni vebhok.
  • Ostaje vidljiva i može da se uređuje.
  • Zadržava postojeću istoriju isporuke.

Aktiviranje krajnje tačke ne popunjava naknadno događaje koji su se dogodili dok je bila neaktivna.

Kliknite na „Sačuvaj“ kada su URL, izbor događaja, zaglavlja i status ispravni.

Razumevanje liste krajnjih tačaka

Svaki red krajnje tačke prikazuje:

  • URL odredišta.
  • Bedž Aktivno ili Neaktivno.
  • Tipove pretplaćenih događaja.
  • Broj prilagođenih zaglavlja.
  • Vreme poslednjeg ažuriranja krajnje tačke.

Dostupne radnje su:

  • Uključi/isključi — Aktivira ili deaktivira krajnju tačku.
  • Testiraj — Šalje jedan trenutni testni zahtev aktivnoj krajnjoj tački.
  • Uredi — Menja URL, događaje, zaglavlja ili aktivni status.
  • Obriši — Trajno uklanja konfiguraciju krajnje tačke nakon potvrde.

Izaberite glavni deo reda da biste ispod liste otvorili istoriju isporuke te krajnje tačke.

Vebhokovi: red aktivne krajnje tačke

Kako sačuvane izmene utiču na postojeće isporuke

Događaj naloga kreira isporuku sa snimkom URL-a krajnje tačke, sadržaja i prilagođenih zaglavlja u tom trenutku.

Uređivanje URL-a ili prilagođenih zaglavlja utiče na novokreirane isporuke. Isporuka koja je već u redu za slanje zadržava prvobitno odredište i sačuvanu konfiguraciju zaglavlja.

Promena izabranih događaja takođe utiče samo na događaje koji se dogode nakon toga. Maildroppa ne kreira retroaktivne isporuke za tipove događaja koji nisu bili izabrani kada se događaj dogodio.

Tajna za potpisivanje je drugačija: ona se čita kada se HTTP zahtev priprema. Zbog toga isporuka na čekanju ili ponovljeno slanje može koristiti novopromenjenu tajnu za potpisivanje čak i kada su njen sadržaj i snimak krajnje tačke kreirani ranije.

Testiranje krajnje tačke

Kliknite na „Testiraj“ na aktivnoj krajnjoj tački nakon što su prijemnik i tajna za potpisivanje spremni.

Maildroppa odmah šalje jedan potpisan zahtev koristeći sačuvani URL krajnje tačke i sačuvana prilagođena zaglavlja. Nesačuvane izmene u otvorenom editoru nisu deo testa.

Testni sadržaj koristi tip događaja webhook.test i postavlja livemode na false:

{
  "id": "evt_test_example",
  "type": "webhook.test",
  "schema_version": "1",
  "created_at": "2026-07-16T10:30:00Z",
  "livemode": false,
  "data": {
    "message": "This is a test webhook from Maildroppa."
  }
}

Generisani ID-jevi i vremenska oznaka razlikuju se za svaki stvarni test.

Test pravi tačno jedan HTTP pokušaj. Testne isporuke ne stavljaju se na produkcioni raspored ponavljanja i ne mogu se ponovo poslati.

Nakon završetka zahteva panel rezultata prikazuje:

  • Test uspešan ili Test neuspešan
  • ID događaja
  • HTTP status, kada je odgovor primljen
  • Trajanje
  • ID isporuke
  • Informacije o grešci, kada su dostupne
  • Isečak odgovora, kada je prijemnik vratio telo

Test se takođe pojavljuje u istoriji isporuke sa bedžom Test. Koristite filter „Test“ da biste prikazali samo testne zahteve.

Vebhokovi: uspešna testna isporuka

Razumevanje produkcionog sadržaja

Produkcioni događaji naloga koriste zajednički JSON omotač:

{
  "id": "evt_example",
  "type": "subscriber.created",
  "schema_version": "1",
  "created_at": "2026-07-16T10:30:00Z",
  "livemode": true,
  "data": {}
}

Svojstva na najvišem nivou znače:

  • id — ID događaja. Podudara se sa X-Maildroppa-Event-Id.
  • type — Ključ događaja izabran u editoru krajnje tačke.
  • schema_version — Verzija šeme sadržaja. Koristite je pri odlučivanju kako da raščlanite događaj.
  • created_at — Vreme kreiranja sadržaja događaja, u UTC-u.
  • livemodetrue za produkcione događaje i false za testne događaje.
  • data — Sadržaj specifičan za događaj.

Usmeravajte događaje prema tačnoj vrednosti type. Zanemarite dodatna svojstva koja vašoj integraciji nisu potrebna kako kompatibilna proširenja sadržaja ne bi pokvarila prijemnik.

Sadržaj događaja pretplatnika

Događaji pretplatnika sadrže trenutni prikaz pretplatnika unutar data.subscriber:

{
  "id": "evt_example",
  "type": "subscriber.updated",
  "schema_version": "1",
  "created_at": "2026-07-16T10:30:00Z",
  "livemode": true,
  "data": {
    "subscriber": {
      "id": "7f49d0e9-77d6-4c24-8b90-12c9d53d82cc",
      "email": "alex@example.com",
      "first_name": "Alex",
      "status": "active",
      "registered_at": "2026-07-15T08:15:00Z",
      "fields": [
        {
          "id": "b6594e58-0c4b-4138-9ad8-fc4747e076eb",
          "personalization_tag_name": "company",
          "value": "Example Ltd."
        }
      ],
      "tags": [
        {
          "id": "c69af5de-39d3-42a4-8f55-ddf86d10a51c",
          "name": "Customers"
        }
      ]
    }
  }
}

fields i tags su nizovi. Mogu biti prazni. Svojstvo pretplatnika takođe može biti null kada vrednost ne postoji, pa vaš prijemnik treba da prati šemu sadržaja umesto da pretpostavlja da je svaka opciona vrednost profila prisutna.

Sadržaj događaja oznake

Događaji oznaka sadrže i pretplatnika i oznaku koja je izazvala događaj:

{
  "id": "evt_example",
  "type": "subscriber.tag_added",
  "schema_version": "1",
  "created_at": "2026-07-16T10:30:00Z",
  "livemode": true,
  "data": {
    "subscriber": {
      "id": "7f49d0e9-77d6-4c24-8b90-12c9d53d82cc",
      "email": "alex@example.com",
      "first_name": "Alex",
      "status": "active",
      "registered_at": "2026-07-15T08:15:00Z",
      "fields": [],
      "tags": []
    },
    "tag": {
      "id": "c69af5de-39d3-42a4-8f55-ddf86d10a51c",
      "name": "Customers"
    }
  }
}

Kod subscriber.tag_removed, data.tag i dalje identifikuje uklonjenu oznaku iako je trenutni niz tags pretplatnika više ne sadrži.

ID-jevi događaja, ID-jevi isporuka i idempotentnost

ID događaja i ID isporuke služe različitim svrhama.

ID događaja

ID događaja identifikuje poslovni događaj. Pojavljuje se u:

  • Svojstvu id na najvišem nivou sadržaja.
  • Zaglavlju zahteva X-Maildroppa-Event-Id.
  • Istoriji isporuke.

Isti događaj može biti poslat na više pretplaćenih krajnjih tačaka. Te isporuke dele ID događaja.

Ponovljena i ručna slanja takođe zadržavaju prvobitni ID događaja. Čuvajte obrađene ID-jeve događaja i učinite poslovnu radnju idempotentnom kako ponovljeni zahtev ne bi kreirao duplikate kontakata, ponavljao nepovratnu radnju ili dvaput primenio istu promenu.

ID isporuke

ID isporuke identifikuje jedan zapis isporuke. Pojavljuje se u:

  • Zaglavlju zahteva X-Maildroppa-Delivery-Id.
  • Istoriji isporuke.

Svaka isporuka krajnjoj tački ima sopstveni ID isporuke. Ručno ponovljeno slanje kreira novi ID isporuke, a zadržava prvobitni ID događaja.

ID isporuke koristite za tehničko praćenje i podršku. ID događaja koristite za deduplikaciju na poslovnom nivou.

Vraćanje ispravnog HTTP odgovora

Maildroppa klasifikuje odgovore na sledeći način:

  • Bilo koji odgovor 2xx označava isporuku kao uspešnu.
  • Odgovori 408 Request Timeout, 429 Too Many Requests i 5xx su privremeni neuspesi i mogu se ponoviti.
  • Mrežni neuspesi koji mogu biti privremeni ponavljaju se.
  • Preusmeravanja i drugi odgovori 3xx ne prate se i tretiraju se kao konačni neuspesi.
  • Ostali odgovori 4xx tretiraju se kao konačni neuspesi i ne ponavljaju se.

Vratite 200, 202 ili 204 samo kada je događaj bezbedno prihvaćen. Ako obrada traje, najpre sačuvajte događaj i vratite uspešan odgovor, a zatim sporiji posao obavite asinhrono.

Ne vraćajte preusmeravanje na drugi URL vebhoka. Umesto toga konfigurišite konačni URL u Maildroppi.

Automatski raspored ponavljanja

Produkcione isporuke mogu imati najviše sedam HTTP pokušaja.

Nakon neuspeha koji može da se ponovi, Maildroppa zakazuje sledeći pokušaj sa sledećim kašnjenjima:

  1. Posle pokušaja 1: 1 minut
  2. Posle pokušaja 2: 5 minuta
  3. Posle pokušaja 3: 30 minuta
  4. Posle pokušaja 4: 2 sata
  5. Posle pokušaja 5: 12 sati
  6. Posle pokušaja 6: 24 sata

Ako pokušaj 7 i dalje dobije neuspeh koji može da se ponovi, isporuka postaje Mrtva i ne zakazuje se nijedan dalji automatski pokušaj.

Raspored se meri od pojedinačnih neuspelih pokušaja. Stvarno vreme isporuke može biti nešto kasnije jer se isporuke obrađuju asinhrono i podležu ograničenjima sistemske zaštite.

Kad god je moguće, rešite privremeni problem na prijemniku pre prikazanog vremena „Sledeće ponavljanje“. Ako su automatski pokušaji završeni, koristite Ponovi nakon što prijemnik ponovo bude ispravan.

Razumevanje istorije isporuke

Istorija isporuke pripada trenutno izabranoj krajnjoj tački. URL krajnje tačke prikazuje se u zaglavlju odeljka kako biste mogli da potvrdite čiju istoriju pregledate.

Koristite ove filtere:

  • Sve — Prikazuje produkcione i testne isporuke.
  • Produkcija — Prikazuje samo isporuke aktivnih događaja.
  • Test — Prikazuje samo ručne testove.

Kliknite na „Osveži“ da biste preuzeli najnovije stanje. Istorija ne mora ostati otvorena dok Maildroppa šalje ili ponavlja isporuku.

Stranica prikazuje najnovijih 50 isporuka koje odgovaraju izabranom filteru.

Vebhokovi: filteri istorije isporuke

Kolone isporuke

Svaki red sadrži:

  • Kreirano — Kada je zapis isporuke kreiran.
  • Stanje — Na čekanju, Uspešno, Neuspešno ili Mrtvo.
  • HTTP — Status odgovora, broj pokušaja i trajanje, kao i vreme sledećeg ponavljanja kada je primenljivo.
  • Pretplatnik — Imejl pretplatnika kada je događaj povezan sa pretplatnikom.
  • Isporuka — Tip događaja, ID događaja i ID isporuke.
  • Radnje — Ponovi kada je isporuka podobna.

Ako nije poslat nijedan HTTP zahtev, kolona HTTP prikazuje „Nema HTTP pokušaja“. To se može dogoditi kada Maildroppa odbije zahtev pre slanja, na primer zato što tajna za potpisivanje nedostaje ili sačuvano odredište više ne može bezbedno da se koristi.

Kada su dostupni, red takođe prikazuje grešku i isečak odgovora koji je vratio prijemnik. Ne vraćajte tajne ili osetljive lične podatke u telu odgovora vebhoka jer deo tog odgovora može da se pojavi u dnevniku isporuke naloga.

Stanja isporuke

Na čekanju znači da isporuka čeka prvi pokušaj ili zakazano ponavljanje. „Sledeće ponavljanje“ pojavljuje se kada je zakazan novi pokušaj.

Uspešno znači da je prijemnik vratio odgovor 2xx. Nije potreban dalji automatski pokušaj.

Neuspešno znači da je isporuka završena problemom koji se ne može ponoviti, odbijena pre HTTP pokušaja ili zaustavljena pre slanja.

Mrtvo znači da su svi automatski pokušaji za problem koji se može ponoviti iskorišćeni bez uspešnog odgovora.

Zadržavanje istorije

Zapisi isporuke čuvaju se ograničeno vreme:

  • Uspešne produkcione isporuke: 30 dana
  • Neuspešne produkcione isporuke: 90 dana
  • Mrtve produkcione isporuke: 90 dana
  • Testne isporuke: 30 dana

Čuvajte sopstvene dnevnike integracije kada vam je potrebna duža istorija revizije. Čuvajte ID-jeve događaja i ID-jeve isporuka, ali izbegavajte nepotrebno čuvanje tajni.

Ponovno slanje isporuke

Kliknite na „Ponovi“ kada završenu produkcionu isporuku treba ponovo pokušati.

Ponovno slanje dostupno je za produkcione isporuke u stanju Uspešno, Neuspešno ili Mrtvo. Nije dostupno dok je isporuka Na čekanju, a testne isporuke ne mogu se ponovo slati.

Ponovno slanje:

  • Kreira novu isporuku Na čekanju.
  • Kreira novi ID isporuke.
  • Zadržava prvobitni ID događaja.
  • Zadržava prvobitni tip događaja i JSON sadržaj.
  • Koristi prvobitni sačuvani ciljni URL i snimak prilagođenih zaglavlja.
  • Koristi važeću tajnu za potpisivanje kada se novi zahtev priprema.

Ponovno slanje ne obnavlja sadržaj iz trenutnih podataka pretplatnika. Ono ponovo šalje prvobitni snimak događaja. Time se ponovno slanje može proveriti i sprečava se da istorijski događaj neprimetno promeni značenje.

Samo jedno ponovno slanje iste izvorne isporuke može istovremeno biti Na čekanju. Sačekajte da se to ponovno slanje završi pre nego što zatražite novo.

Uverite se da je krajnja tačka aktivna pre ponovnog slanja. Ako je neaktivna, stavljeno ponovno slanje u red ne može se uspešno isporučiti.

Pošto je prijemnik možda završio poslovnu radnju čak i kada Maildroppa nije primila odgovor o uspehu, ponovno slanje može proizvesti duplikat zahteva. Deduplikacija po ID-ju događaja štiti povezani sistem od ponavljanja radnje.

Uređivanje krajnje tačke

Kliknite na „Uredi“ da biste promenili URL, izbor događaja, prilagođena zaglavlja ili aktivni status.

Pre čuvanja:

  1. Potvrdite da je novi URL već dostupan.
  2. Ostavite sačuvane vrednosti zaglavlja praznim kada treba da ostanu nepromenjene.
  3. Unesite novu vrednost za svako preimenovano zaglavlje.
  4. Pregledajte izbor događaja kako potrebna obaveštenja ne biste slučajno uklonili.
  5. Sačuvajte i pošaljite novi testni vebhok.

Imajte na umu da isporuke u redu zadržavaju postojeći URL i snimak prilagođenih zaglavlja. Testirajte novu konfiguraciju za buduće isporuke umesto da pretpostavite da menja stariji zahtev u redu.

Deaktiviranje krajnje tačke

Koristite prekidač Uključi/isključi kada želite da pauzirate integraciju bez brisanja njene konfiguracije i istorije.

Kada je krajnja tačka isključena:

  • Novi događaji se više ne stavljaju u red za nju.
  • Isporuke Na čekanju koje još nisu preuzete za slanje označavaju se kao Neuspešne.
  • Testiranje je onemogućeno.
  • Krajnja tačka ostaje dostupna za uređivanje i kasnije aktiviranje.

Zahtev koji je već u toku u trenutku deaktiviranja i dalje može da se završi. Proverite istoriju isporuke nakon isključivanja krajnje tačke ako je ova razlika važna za vašu integraciju.

Događaji propušteni dok je krajnja tačka neaktivna ne popunjavaju se naknadno kada je ponovo uključite.

Brisanje krajnje tačke

Kliknite na „Obriši“ i potvrdite upozorenje kada krajnja tačka više ne treba da postoji.

Brisanje uklanja krajnju tačku sa stranice, zaustavlja buduće isporuke događaja i neuspešnim označava isporuke Na čekanju koje još nisu preuzete za slanje.

Brisanje nije način za privremeno pauziranje. Koristite prekidač Uključi/isključi kada vam konfiguracija ili vidljiva istorija možda ponovo budu potrebne.

Pre brisanja zabeležite sve ID-jeve događaja ili ID-jeve isporuka koji su vam još potrebni za reviziju integracije.

Rešavanje problema

Krajnja tačka ne može da se sačuva

Proverite da li:

  • URL počinje sa https://.
  • URL koristi javno ime hosta i port 443.
  • URL ne sadrži promenljive, podatke za prijavu ili fragment.
  • Izabran je najmanje jedan događaj.
  • Svako prilagođeno zaglavlje ima jedinstven naziv i vrednost.
  • Rezervisana Maildroppa i HTTP zaglavlja nisu korišćena kao prilagođeni nazivi.

Testiranje je onemogućeno

Testiranje je dostupno samo za aktivnu krajnju tačku. Uključite krajnju tačku ili je uredite i izaberite „Aktivno“, a zatim sačuvajte pre testiranja.

Test ne prikazuje HTTP pokušaj

Generišite tajnu za potpisivanje ako je status Nedostaje. Takođe proverite da li je ime hosta odredišta javno i da li se i dalje ispravno razrešava.

Zahtev može biti odbijen pre slanja kada su njegova tajna, URL, prilagođena zaglavlja ili provera bezbednosti odredišta nevažeći.

Prijemnik vraća 401 ili 403

Proverite sačuvani naziv prilagođenog zaglavlja i akreditiv. Uredite krajnju tačku i ponovo unesite vrednost ako se promenila.

Takođe proverite da li prijemnik ne meša sopstveni API akreditiv sa Maildroppa potpisom. Prilagođeno autorizaciono zaglavlje i X-Maildroppa-Signature služe različitim svrhama i mogu se proveravati nezavisno.

Prijemnik vraća preusmeravanje

Maildroppa ne prati preusmeravanja. Zamenite URL krajnje tačke konačnim javnim HTTPS URL-om i ponovo testirajte.

Potpis se ne podudara

Potvrdite da prijemnik:

  • Koristi važeću tajnu za potpisivanje.
  • Koristi tačnu vrednost X-Maildroppa-Timestamp.
  • Potpisuje <timestamp>.<raw request body>.
  • Koristi HMAC-SHA256 i rezultat u malim heksadecimalnim slovima.
  • Poredi celu vrednost, uključujući v1=.
  • Obavlja poređenje pre nego što raščlanjivanje JSON-a izmeni telo.

Isti događaj stiže više puta

To se može dogoditi nakon prekida mreže, ponavljanja ili ručnog ponovnog slanja. Normalno je da sistemi za isporuku vebhokova obezbeđuju isporuku najmanje jednom, a ne tačno jednom.

Koristite ID događaja kao ključ idempotentnosti. Vratite odgovor 2xx kada ponovo primite već obrađen ID događaja i nije potrebna dodatna radnja.

Isporuka je na čekanju

Pogledajte „Sledeće ponavljanje“ u koloni HTTP. Ponovljivi 408, 429, 5xx ili privremeni mrežni neuspeh ostaje Na čekanju do sledećeg zakazanog pokušaja.

Kliknite na „Osveži“ nakon vremena ponavljanja da biste učitali najnovije stanje.

Isporuka je mrtva

Svi automatski pokušaji su iskorišćeni. Najpre popravite prijemnik, proverite da je krajnja tačka aktivna, pošaljite testni vebhok, a zatim upotrebite Ponovi na produkcionoj isporuci.

Preporučena produkciona kontrolna lista

Pre nego što se oslonite na krajnju tačku u produkciji, potvrdite sve sledeće:

  1. Prijemnik koristi stabilan javni HTTPS URL sa važećim sertifikatom.
  2. Tajna za potpisivanje čuva se izvan izvornog koda.
  3. Potpis se proverava u odnosu na neizmenjeno neobrađeno telo.
  4. Stare vremenske oznake odbacuju se prema dokumentovanom odstupanju.
  5. Prijemnik čuva i deduplikuje ID-jeve događaja.
  6. Prijemnik beleži ID-jeve događaja i ID-jeve isporuka radi praćenja.
  7. Spora obrada se odvija nakon trajnog prihvatanja događaja.
  8. Odgovor 2xx vraća se samo za prihvaćene događaje.
  9. Prilagođeni akreditivi čuvaju se u zaglavljima, a ne u URL-u.
  10. Izabrani su samo potrebni tipovi događaja.
  11. Testni vebhok je uspešan i pravilno se pojavljuje u istoriji isporuke.
  12. Nadgledanje vas obaveštava kada produkcione isporuke počnu da vraćaju greške.

Uz ove mere zaštite, stranica Vebhokovi pruža obe strane pouzdane integracije: bezbednu isporuku događaja vašoj aplikaciji i jasnu operativnu istoriju unutar Maildroppe.

Ready to Send Better Emails?

Stop juggling bloated tools or overpriced plans. Maildroppa offers personal support, GDPR-level privacy, and powerful email marketing - starting free forever.

Sign Up For Free

No credit card required. No time limit.