clickSomo

Die API

Daar is geen private eindpunt nie. Nie eers vir die koppelvlak nie.

Die meeste produkte het twee API's: die gedokumenteerde een wat aan jou aangebied word, en die interessante een wat hul eie skerms gebruik. Die tweede is altyd beter, en jy mag nooit naby dit kom nie. Hier is daar een, en die koppelvlak is 'n kliënt daarvan so enigiets anders — wat 'n beperking op ons is, en die rede hoekom alles wat jy wil bou moontlik is.

Wat daardie reël werklik kos

Dit beteken dat 'n skerm soms moet wag tot die API reg is, eerder as om daaromheen te reik vir een gerieflike veld. Die dag wat 'n skerm iets nodig het wat die openbare API nie kan gee nie, is die dag wat die API verkeerd is, en die oplossing is die API.

Die voordeel is dat drie baie verskillende kliënte byna niks ekstra kos nie. Die MCP-bediener is 'n kliënt. 'n dash-b-teël is 'n kliënt. Jou eie skrip is 'n kliënt. Nie een van hulle is 'n tweede klas burger wat om 'n oppervlak vir iemand anders ontwerp werk nie, want daar is geen ander oppervlak om tweede te wees teenoor nie.

Gedokumenteer, en gebruik

OpenAPI word gegenereer by /docs en elke roete het 'n toets wat die voorbeeld in die dokumentasie is. Dokumentasie wat afsonderlik van die kode geskryf word, dryf binne 'n maand weg; dokumentasie wat die bou fal wanneer dit verkeerd is, nie.

Aanmelding

Jou castomo-rekening, oor die magtigingskodevloei met PKCE — dieselfde rekening wat jy vir dash-b en die res van die gesin gebruik. 'n Bladsy met geen eien bediener laat daardie vloei heel goed loop nie; dit is waarvoor die vloei ontwerp is. Vir masjien-tot-masjien-werk, 'n projekgerigte API-sleutel.

Die oppervlakapi.clicksomo.com
  • 1Mense/v1/contacts · /lists · /segments · /tags · /imports
  • 2Inhoud/v1/creatives, met validering, voorskou en weergawe per teiken
  • 3Outomatisering/v1/funnels · /funnels/:id/versions · /runs · /simulate
  • 4Uitsending/v1/campaigns, met gehoor, materialiseer, skeduleer en stuur as afsonderlike stappe
  • 5Gebeurtenisse in/v1/events — jou eie toepassing se gebeurtenisse, as snellers
  • 6Aflewering/sender-identities · /domains · /apps · /webhooks
  • 7Syfers/v1/reports/*, en /track/* op die nasporingsgashere

OpenAPI by /docs/mcp op dieselfde proses

Konvensies

Dieselfde vorm as elke ander castomo-diens

Wat meer saak maak as wat dit klink. As jy reeds een van hierdie roep, weet jy reeds hoe hierdie een antwoord, faal en pageer.

Een foutomhulsel

Elke mislukking het dieselfde vorm, 'n stabiele kode en 'n boodskap bedoel vir 'n persoon. Geen roete skep sy eie manier om ongelukkig te wees nie.

Wyserpaginering

Nie sklale nie. 'n Lys wat verander terwyl jy dit deurloop, slaan stilweg rye oor of herhaal dit nie, wat sklalepaginering stilweg en gedurig doen.

Idempotensiesleutels

Op elke muterende roete. Herhaal 'n versoek waarvan jy nie seker is dat dit aangekom het nie en kry dieselfde antwoord eerder as 'n tweede kontak, 'n tweede veldtog of 'n tweede stuur.

Gerig op 'n projek

'n Token adresseer een huurder en een projek, albei. Ryvlaksekuriteit word in die databasis self afgedwing, nie deur te onthou om 'n klousule by te voeg nie.

Webhake uit

Onderteken, herprobeer met terugstel, en minstens een keer afgelewer — so jou eindpunt moet ook idempotent wees. Die gebeure gebruik dieselfde woordeskat as die verslae.

Uitwissing en uitvoer

'n Kontak kan via die API uitgevoer of uitgewis word, en 'n uitwissing bereik elke sibbe-diens wat 'n kopie gehou het via die familie se eie interne kanaal.

Alles waartoe die koppelvlak in staat is, kan 'n POST doen.

Gebeure is die interessante deel

Alles anders op hierdie bladsy is loodgieterswerk wat jy sou verwag. POST /v1/events is die roete wat verander waarvoor die produk bedoel is.

Jou toepassing weet reeds dinge wat geen bemarkingsinstrument kan waarneem nie: wie aantrekkingsproses voltooi het, wie 'n kollega genooi het, wie 'n limiet getref het, wie hul data op 'n Sondagmiddag uitgevoer het. Plaas dit as gebeure met jou eie token, en elk word 'n sneller, 'n voorwaarde en 'n segment.

Die res volg uit die kontakmodel. Gebeure word bygevoeg, nooit geredigeer nie; dit is die log waarop die hele produk rus. 'n Tregter wat op 'n gebeurtenis wat jy gedefinieer het sneller, is nie 'n integrasie nie — dit is dieselfde meganisme wat message_opened gebruik, met 'n ander naam daarin.

Jou gebeurtenis word 'n tregterapi_event
  • 1Jy plaas ditPOST /v1/events — 'n naam, 'n kontak, 'n vrag, 'n idempotensiesleutel.
  • 2Dit kom aanBygevoeg by die kontak se log. Niks anders hoef te weet dat dit bestaan nie.
  • 3'n Tregter beginEnige tregter waarvan die intree daardie gebeurtenis noem, vir enige kontak wat onder sy intreespesifikasie kwalifiseer.
  • 4Ander tregters vertak daarop"Het hierdie gebeurtenis in die laaste 14 dae plaasgevind" is 'n gewone segmentpredikaat.
  • iEn dit beëindig lopies'n Doelnodus wat na dieselfde gebeurtenis verwys, stop 'n reeks die oomblik wat die persoon die ding doen.

Jou woordeskatJou token

Grense wat die moeite werd is om te ken voordat jy bou

ClickSomo stoor drie identifiseerders oor jou — 'n huurder, 'n projek en 'n gebruiker, as ondeursigtige id's — en niks anders nie. Geen wagwoord, geen profiel, geen kaart, geen factuur nie. Planlimiete kom as getalle aan: hoeveel kontakte, hoeveel stuuries, hoeveel generasies. Betalingswoordeskat kruis daardie lyn nie in enige rigting nie.

Jou kontakte is joune. Jy is die databeheerder; ons is die verwerker. Daar is geen roete waardeur 'n ander produk in die familie jou kontaklys kan lees of skryf nie, en geen inneemkanaal wat een kan gebruik nie.

As jy dit ernstig evalueer: lees /docs voordat jy nog iets van hierdie webwerf lees. Die API is die eerlike beskrywing van wat die produk doen, en elke bewering op hierdie bladsye koppel aan 'n roete of 'n nodustipe wat jy daar kan vind. Wanneer die skema verander, verander hierdie bladsye.