Ir al contenido

Widget

Embeddable support widget for customer websites.

GET /widget.js

Script to include in your website. It injects a floating support button that opens the ticket form (/widget.html) in an iframe.

<script src="https://exocortex-api.ai-exo-cortex.com/widget.js?tenant=ACME&key=pk_live_3f9a1c2e" async></script>

Autenticación: Ninguna: la solicitud se autentica con la firma descrita arriba.

Nombre Dónde Tipo Obligatorio Descripción
tenant query string sí
key query string sí Public widget key.
Estado Descripción
200 JavaScript loader.

Ejemplo 200

(function(){ /* exoCortex widget loader */ })();
Ventana de terminal
curl -X GET "https://exocortex-api.ai-exo-cortex.com/widget.js?tenant=ACME&key=pk_live_3f9a1c2e"

GET /widget.html

The HTML form rendered inside the widget iframe. You normally don’t call it directly; /widget.js loads it.

Autenticación: Ninguna: la solicitud se autentica con la firma descrita arriba.

Nombre Dónde Tipo Obligatorio Descripción
tenant query string sí
key query string sí Public widget key.
Estado Descripción
200 HTML document.

Ejemplo 200

<!DOCTYPE html><html>…</html>
Ventana de terminal
curl -X GET "https://exocortex-api.ai-exo-cortex.com/widget.html?tenant=ACME&key=pk_live_3f9a1c2e"

POST /api/v1/widget/submit

Used by the widget form. Limited to 30 submissions per hour per client IP and tenant. If the tenant enabled Cloudflare Turnstile, a valid cf_turnstile_token is required.

Autenticación: Clave pública del widget: X-NH-Widget-Key: pk_…

application/json

Nombre Tipo Obligatorio Descripción
tenant string sí Must match the widget key’s tenant.
email string (email) sí
name string no
subject string sí
description string sí
category string no
origin string no Page URL where the widget was used.
cf_turnstile_token string no Cloudflare Turnstile token. Required if the tenant enabled Turnstile. You can also send it in the X-NH-Turnstile header.
{
"tenant": "ACME",
"email": "[email protected]",
"name": "Maria Rossi",
"subject": "Cannot download my invoice",
"description": "The invoice page shows an empty PDF for October.",
"category": "Billing",
"origin": "https://www.example.com/account",
"cf_turnstile_token": "0.xY2fake-turnstile-token"
}
Estado Descripción
200 Ticket created.
400 Invalid request.
401 Not authenticated.
403 Authenticated but not allowed (role, tenant or key).
429 Too many submissions from this IP (30 per hour).
500 Unexpected server error.

Ejemplo 200

{
"ok": true,
"ticket_key": "ACME-1043",
"ingestion_id": "ing_2c71f0aa"
}
Ventana de terminal
curl -X POST "https://exocortex-api.ai-exo-cortex.com/api/v1/widget/submit" \
-H "X-NH-Widget-Key: $EXO_WIDGET_KEY" \
-H "Content-Type: application/json" \
--data '{"tenant":"ACME","email":"[email protected]","name":"Maria Rossi","subject":"Cannot download my invoice","description":"The invoice page shows an empty PDF for October.","category":"Billing","origin":"https://www.example.com/account","cf_turnstile_token":"0.xY2fake-turnstile-token"}'

Página generada a partir de la especificación OpenAPI de la API de integración, versión 1.1.0.