api-referencePOST
POST
https://analytics.flowsery.com/api/v1/goalsGraba un evento de objetivo personalizado. Sólo se requiere el nombre; visitanteUid, sessionUid, metadatos y zona horaria son opcionales.
Clave API (Bearer token)
Cuerpo de solicitud
| Parametro | Tipo | Descripcion |
|---|---|---|
visitorUid | string | ID de visitante Flowsery opcional, que generalmente se obtiene de la cookie _fs_vid en su propio backend. |
sessionUid | string | ID de sesión Flowsery opcional, normalmente procedente de la cookie _fs_sid. |
nameOBLIGATORIO | string | Nombre del objetivo (letras minusculas, numeros, guiones bajos y guiones; max. 64 caracteres). |
metadata | object | Pares clave-valor personalizados opcionales. Mantenga 10 claves o menos. |
Reglas del campo metadata
<strong>Claves:</strong> Solo letras minusculas, numeros, guiones bajos (_) y guiones (-). Max. 64 caracteres.
<strong>Valores:</strong> Cualquier cadena de texto hasta 255 caracteres. El contenido HTML y de scripts se elimina automaticamente por seguridad.
<strong>Limite:</strong> Hasta 10 parametros personalizados por evento.
No se requiere vista de página existente
El backend puede crear el registro de objetivos a pedido. No se debe documentar que este punto final requiera una vista de página previamente registrada.Respuestas de error
<strong>400 Solicitud incorrecta</strong>: se devuelve cuando la carga útil no es válida.
<strong>404 No encontrado</strong>: no forma parte del contrato normal de creación de objetivos.
Solicitud de ejemplo (Node.js)
const handler = async (req, res) => {
const _fs_vid = req.cookies._fs_vid;
const _fs_sid = req.cookies._fs_sid;
const response = await fetch(
"https://analytics.flowsery.com/api/v1/goals",
{
method: "POST",
headers: {
Authorization: `Bearer ${FLOWSERY_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
visitorUid: _fs_vid,
sessionUid: _fs_sid,
name: "newsletter_signup",
metadata: {
name: "Elon Musk",
email: "musk@x.com",
},
}),
}
);
const result = await response.json();
res.status(200).send("Goal tracked");
};200
{
"status": "success",
"data": [{
"message": "Goal created successfully"
}]
}