clickSomo

API'en

Der er intet privat endpoint. Ikke engang til selve interfacet.

De fleste produkter har to API'er: det dokumenterede, du bliver tilbudt, og det interessante, som deres egne skærme bruger. Det andet er altid bedre, og du kommer aldrig i nærheden af det. Her findes der kun ét, og interfacet er en klient af det som alt andet — det er en begrænsning for os, og grunden til, at alt, hvad du vil bygge, er muligt.

Hvad den regel faktisk koster

Det betyder, at en skærm af og til må vente på, at API'en bliver rigtig, i stedet for at gå uden om den for et bekvemt felt. Den dag en skærm har brug for noget, det offentlige API ikke kan give, er den dag API'en tager fejl, og løsningen er API'en.

Gevinsten er, at tre meget forskellige klienter næsten ikke koster ekstra. MCP-serveren er en klient. En dash-b-flise er en klient. Dit eget script er en klient. Ingen af dem er andenrangs borgere, der arbejder uden om en flade designet til en anden, for der er ingen anden flade at være nummer to til.

Dokumenteret og afprøvet

OpenAPI genereres på /docs, og hver rute har en test, der er eksemplet i dokumentationen. Dokumentation, der skrives separat fra koden, driver væk inden for en måned; dokumentation, der får buildet til at fejle, når den tager fejl, gør ikke.

Log ind

Din castomo-konto, via authorization code flow med PKCE — samme konto, du bruger til dash-b og resten af familien. En side uden egen server kører det flow helt fint; det er, hvad flowet er designet til. Til maskine-til-maskine-arbejde: en projektafgrænset API-nøgle.

Fladenapi.clicksomo.com
  • 1Folk/v1/contacts · /lists · /segments · /tags · /imports
  • 2Indhold/v1/creatives, med validering, preview og render pr. mål
  • 3Automatisering/v1/funnels · /funnels/:id/versions · /runs · /simulate
  • 4Radio/v1/campaigns, med målgruppe, materialisering, planlægning og afsendelse som adskilte trin
  • 5Events ind/v1/events — din egen applikations events, som triggers
  • 6Levering/sender-identities · /domains · /apps · /webhooks
  • 7Tal/v1/reports/* og /track/* på tracking-hosten

OpenAPI på /docs/mcp på samme proces

Konventioner

Samme form som alle andre castomo-tjenester

Hvilket betyder mere, end det lyder. Hvis du allerede kalder en af disse, ved du allerede, hvordan denne svarer, fejler og paginerer.

Én fejlkonvolut

Hver fejl har samme form, en stabil kode og en besked beregnet på et menneske. Ingen rute opfinder sin egen måde at være utilfreds på.

Cursor-paginering

Ikke offsets. En liste, der ændrer sig, mens du gennemløber den, springer ikke lydløst rækker over eller gentager dem, hvilket offset-paginering gør stille og roligt hele tiden.

Idempotensnøgler

På alle ruter, der ændrer data. Prøv en forespørgsel igen, hvis du er i tvivl om, hvorvidt den landede, og få det samme svar frem for en anden kontakt, en anden kampagne eller en anden udsendelse.

Afgrænset til et projekt

Et token peger på én tenant og ét projekt, begge dele. Sikkerhed på rækkeniveau håndhæves i selve databasen, ikke ved at huske at tilføje en klausul.

Webhooks ud

Signerede, forsøgt igen med backoff og leveret mindst én gang — så dit endpoint bør også være idempotent. Begivenhederne bruger samme ordforråd som rapporterne.

Sletning og eksport

En kontakt kan eksporteres eller slettes via API'et, og en sletning når frem til alle søstertjenester, der har en kopi, via familiens egen interne kanal.

Alt, hvad interfacet kan, kan en POST gøre.

Begivenhederne er det interessante

Alt andet på denne side er rørværk, du ville forvente. POST /v1/events er ruten, der ændrer, hvad produktet handler om.

Din applikation ved allerede ting, intet marketingværktøj kan observere: hvem der gennemførte onboarding, hvem der inviterede en kollega, hvem der ramte en grænse, hvem der eksporterede deres data en søndag eftermiddag. Send dem som begivenheder med dit eget token, og hver enkelt bliver en trigger, en betingelse og et segment.

Resten følger af kontaktmodellen. Begivenheder tilføjes, redigeres aldrig; det er loggen, hele produktet hænger på. En tragt, der udløses af en begivenhed, du har defineret, er ikke en integration — det er samme mekanisme, som message_opened bruger, bare med et andet navn i.

Din begivenhed bliver en tragtapi_event
  • 1Du sender denPOST /v1/events — et navn, en kontakt, en payload, en idempotensnøgle.
  • 2Den landerTilføjet til kontaktens log. Intet andet behøver vide, at den findes.
  • 3En tragt starterEnhver tragt, hvis indgang nævner den begivenhed, for enhver kontakt, der opfylder dens indgangskriterier.
  • 4Andre tragte forgrener sig på den"Har denne begivenhed fundet sted inden for de seneste 14 dage" er et almindeligt segmentprædikat.
  • iOg den afslutter forløbEn målsknude, der nævner samme begivenhed, stopper en sekvens i det øjeblik, personen gør tingen.

Dit ordforrådDit token

Grænser, du bør kende, før du bygger

ClickSomo gemmer tre identifikatorer om dig — en tenant, et projekt og en bruger, som uigennemsigtige id'er — og intet andet. Ingen adgangskode, ingen profil, intet kort, ingen faktura. Planbegrænsninger kommer som tal: hvor mange kontakter, hvor mange udsendelser, hvor mange genereringer. Betalingsterminologi krydser ikke den linje i nogen retning.

Dine kontakter er dine. Du er dataansvarlig; vi er databehandler. Der findes ingen rute, hvorved et andet produkt i familien kan læse eller skrive din kontaktliste, og ingen indgangskanal, som et kan bruge.

Hvis du overvejer dette seriøst: læs /docs, før du læser mere af dette website. API'et er den ærlige beskrivelse af, hvad produktet gør, og ethvert udsagn på disse sider svarer til en rute eller en knudetype, du kan finde der. Når skemaet ændres, ændres disse sider.