HelpStackDokumenti

Integracije

Referenca API

REST API za nadzorno ploščo HelpStack, widget in webhooks.

Hitre dejstvice#

Osnovna potKončne točke se nahajajo pod https://helpstack.eu/api/… — predpona poti, ne dosegljiv URL
Avtentikacija (API nadzorne plošče)Piškot seje NextAuth (prijavljeni uporabnik)
Avtentikacija (API widgeta)Ni (javno, omejeno po hitrosti)
Avtentikacija (webhooks)Rokovanje z žetonom za preverjanje + podpis HMAC-SHA256
Content-Typeapplication/json (nalaganje datotek uporablja multipart/form-data)
VečnajemništvoVsaka zahteva nadzorne plošče je omejena na organizacijo uporabnika seje

Pričakujte 404 na /api samem in 401 na avtenticiranih končnih točkah. Na goli poti https://helpstack.eu/api ni nobene usmeritve — zahtevo vrne 404 po zasnovi, ker je API nabor podpoti (/api/conversations, /api/channels, …), ne pa brskljiva korenina. Odpiranje prave končne točke, kot je /api/conversations, v brskalniku vrne 401 (brez piškotka seje), kar potrjuje, da obstaja in je zaščitena z avtentikacijo. Nobeden od odgovorov ni napaka.

Model avtentikacije — preberite najprej#

Trenutno ni javnega sistema z API-ključem ali žetonom za zunanje klicatelje. Ne iščite "API ključa" — ne obstaja. API nadzorne plošče/interno je avtenticiran s piškotkom seje NextAuth prijavljenega uporabnika, vsaka zahteva pa je s posredniško programsko opremo (withOrganization / withAdmin / withAgent) samodejno omejena na organizacijo tega uporabnika. Te končne točke uporablja UI nadzorne plošče HelpStack.

Za klicanje končnih točk nadzorne plošče zunaj brskalnika morate predvajati avtenticiran piškotok seje. Če potrebujete dostop med stroji, so podprte javne površine:

  • Končne točke widgeta — javne, omejene po hitrosti na IP/obiskovalca (glejte Vgraditev widgeta).
  • Končne točke webhooks — javne, preverjene z žetonom + podpisom HMAC (glejte Webhooks).

Vse, kar zahteva piškotok seje, obravnavajte kot "preverite pri svoji namestitvi" za programatično uporabo.

Ovojnica odgovora#

Vse API poti vračajo standardno ovojnico.

Uspeh

{ "success": true, "data": { } }

Napaka

{
  "success": false,
  "error": {
    "message": "Human-readable message",
    "code": "OPTIONAL_CODE",
    "fields": { "fieldName": ["error 1"] }
  }
}

code in fields sta neobvezna. fields je zapolnjen pri napakah preverjanja (Zod) s sporočili za posamezno polje.

Kode napak in HTTP status#

Napake ustvarja tipizirani razredi napak in centralni upravljalnik. Pregled na visoki ravni:

HTTPKdajPrimer code
400Neveljavna vhodna vrednost / napaka preverjanjaVALIDATION_ERROR
401Manjkajoča ali potečena avtentikacija
402Premalo žetonov za izvedbo dejanjaINSUFFICIENT_TOKENS
403Nezadostna vloga/dovoljenje
404Vir ni bil najden
409Podvajanje/konflikt
429Presežena omejitev hitrosti
502Napaka tretje strani API
500Nepričakovana/notranja napaka (sporočilo je skrito)

Napake pri preverjanju Zod vrnejo 400 s code: "VALIDATION_ERROR" in objektom fields. Nepričakovane napake vrnejo 500 z generičnim sporočilom ("An unexpected error occurred"); dejanske podrobnosti so zabeležene samo na strežniku.

Katalog končnih točk#

Vloge: končna točka označena z ADMIN zahteva skrbnika (withAdmin), AGENT zahteva agenta ali višje (withAgent), Seja zahteva katerega koli avtenticiranega člana organizacije (withOrganization).

Kanali

MetodaPotNamenAvtentikacija
GET/api/channelsSeznam kanalovSeja
POST/api/channelsUstvari kanalADMIN
GET/api/channels/[id]Pridobi en kanalSeja
PATCH/api/channels/[id]Posodobi kanalADMIN
DELETE/api/channels/[id]Izbriši kanalADMIN
GET/api/channels/[id]/widget-scriptPridobi odrezek za vgraditev za kanal WEBSITE_CHATSeja
GET/api/channels/[id]/widget-configPridobi konfiguracijo videza widgetaSeja
GET/POST/api/channels/[id]/agent-toolsPrikaži seznam/priloži orodja agenta na ravni kanalaSeja

Ustvari kanalPOST /api/channels (preverjena vsebina, createChannelSchema):

{
  "type": "WEBSITE_CHAT",
  "name": "Website Chat",
  "region": "eu",
  "defaultLanguage": "en",
  "autoTranslate": true,
  "translateToLanguage": "en",
  "fallbackLanguage": "sl",
  "aiProviderId": "PROVIDER_ID",
  "credentials": {},
  "responseTemplate": {},
  "autoReply": false,
  "autoApprove": false,
  "autoEnhance": false
}
PoljeTipObveznoOpombe
typeenumdaEMAIL | FACEBOOK | INSTAGRAM | WHATSAPP | TELEGRAM | WEBSITE_CHAT
namestringdaMinimalna dolžina 1
regionstringne
defaultLanguagestringnePrivzeto en (jezik agenta)
autoTranslatebooleannePrivzeto true
translateToLanguagestringneJezik agenta, v katerega se prevaja
fallbackLanguagestringneUganjen jezik stranke za kratka/dvoumna sporočila
aiProviderIdstringneVrne na privzetega ponudnika organizacije
credentialsobjectdaPoverilnice za posamezno vrsto kanala (npr. IMAP/SMTP, žetoni strani)
responseTemplateobjectne
autoReplybooleannePrivzeto false
autoApprovebooleannePrivzeto false
autoEnhancebooleannePrivzeto false

Oblike poverilnic za vrsto kanala (credentials) se preverjajo ločeno — npr. E-pošta zahteva { host, port, username, password, from, secure?, imapHost?, imapPort?, imapSecure?, imapAllowSelfSigned? }; Facebook zahteva { pageId, accessToken, appSecret? }; Instagram zahteva { accountId, accessToken }. Poverilnice so shranjene šifrirano (AES-256-GCM).

Pogovori

MetodaPotNamenAvtentikacijaKljučni parametri
GET/api/conversationsSeznam pogovorovSejapage, pageSize, status, channelId, unread, assignedToId, language, search
POST/api/conversationsUstvari pogovorAGENT
GET/api/conversations/[id]Pridobi enegaSeja
PATCH/api/conversations/[id]Posodobi (status, prioriteta, dodelitev, jezik, opombe)Seja
DELETE/api/conversations/[id]IzbrišiSeja
GET/api/conversations/[id]/messagesSeznam sporočilSeja
POST/api/conversations/[id]/messagesPošlji odgovor agentaAGENT
POST/api/conversations/[id]/readOznači kot prebranoSeja
POST/api/conversations/[id]/unreadOznači kot neprebranoSeja
POST/api/conversations/bulk-readOznači več kot prebranoSeja

Vrednosti filtra status: OPEN | PENDING | CLOSED | ARCHIVED. pageSize je omejen na 100 (privzeto 20).

Pošlji sporočiloPOST /api/conversations/[id]/messages (preverjena vsebina, sendMessageSchema):

{
  "conversationId": "CONVERSATION_ID",
  "content": "Thanks for reaching out — here's how to fix that.",
  "attachments": ["storage/path/file.png"]
}
PoljeTipObveznoOpombe
conversationIdstringdaMora se ujemati s parametrom poti [id], sicer 400 VALIDATION_ERROR
contentstringdaMinimalna dolžina 1
attachmentsstring[]nePoti v shrambi

Obnašanje: sporočilo je ustvarjeno kot OUTBOUND. Če ima kanal vklopljeno autoTranslate in je znan jezik stranke, je sporočilo ustvarjeno neodobreno in prevedeno v ozadju (agent odobri pred pošiljanjem). Pošiljanje porabi žetone načrta; če organizacija nima žetonov, pot vrne 402 s code: "INSUFFICIENT_TOKENS". Ob uspehu vrne ustvarjeno sporočilo s HTTP 201.

Sporočila

MetodaPotNamenAvtentikacija
POST/api/messages/[id]/approveOdobri odgovor v čakalni vrsti/preveden za pošiljanjeSeja
POST/api/messages/[id]/generate-replyUstvari predlog AI odgovoraSeja
POST/api/messages/[id]/retranslateZnova izvedi prevajanje sporočilaSeja

Pogosta vprašanja

MetodaPotNamenAvtentikacijaKljučni parametri
GET/api/faqsSeznam pogostih vprašanjSejachannelId
POST/api/faqsUstvari pogosto vprašanjeADMIN
PATCH/api/faqs/[id]Posodobi pogosto vprašanjeSeja
DELETE/api/faqs/[id]Izbriši pogosto vprašanjeSeja
POST/api/faqs/reorderPreuredite pogosta vprašanjaSeja
POST/api/faqs/generateAI-ustvari predloge pogostih vprašanjSeja

Mediji

MetodaPotNamenAvtentikacija
POST/api/media/uploadNaloži datoteko (multipart/form-data)Seja
GET/api/media/[id]Pridobi metapodatke/datoteko medijaSeja
DELETE/api/media/[id]Izbriši medijSeja

Obvestila

MetodaPotNamenAvtentikacija
GET/PUT/api/notifications/preferencesPridobi/posodobi nastavitve obvestilSeja
GET/POST/api/notifications/integrationsSeznam/konfiguriraj integracije obvestilSeja
POST/api/notifications/push-subscriptionRegistriraj naročnino na Web PushSeja

AI ponudniki

MetodaPotNamenAvtentikacija
GET/api/ai-providersSeznam konfiguriranih ponudnikovSeja
POST/api/ai-providersDodaj ponudnikaSeja
PATCH/api/ai-providers/[id]Posodobi ponudnikaSeja
DELETE/api/ai-providers/[id]Odstrani ponudnikaSeja

Orodja agenta

MetodaPotNamenAvtentikacija
GET/api/agent-toolsSeznam orodij agenta na ravni organizacijeSeja
POST/api/agent-toolsUstvari orodje agentaSeja
PATCH/api/agent-tools/[id]Posodobi orodje agentaSeja
DELETE/api/agent-tools/[id]Izbriši orodje agentaSeja
GET/api/agent-tools/[id]/logsOgled dnevnikov klicev orodjaSeja

Glejte Orodja agenta po meri za celotno anatomijo orodja.

Widget (javno)

MetodaPotNamenAvtentikacija
GET/api/widget/[channelId]/configKonfiguracija widgetaJavno, ~30/min/IP
GET/api/widget/[channelId]/faqsDo 5 žetonov s pogostimi vprašanjiJavno, ~30/min/IP
GET/api/widget/[channelId]/statusStanje v spletuJavno
POST/api/widget/[channelId]/uploadNalaganje datotekeJavno
POST/api/widget/messagePošlji sporočilo (rezerva za WebSocket)Javno, ~20/min/obiskovalec

Glejte Vgraditev widgeta za koristne obremenitve.

Webhooks (javno)

MetodaPotNamenAvtentikacija
GET/api/webhooks/facebookRokovanje za preverjanjeŽeton za preverjanje
POST/api/webhooks/facebookPrejemaj dogodke MessengerPodpis HMAC
GET/POST/api/webhooks/instagramPreverjanje / sprejemanje dogodkov InstagramŽeton za preverjanje / HMAC
GET/POST/api/webhooks/whatsappPreverjanje / sprejemanje dogodkov WhatsAppŽeton za preverjanje / HMAC

Glejte Webhooks za podrobnosti o rokovanju in podpisu.

Sorodne teme#