api-referencePOST
POSThttps://analytics.flowsery.com/api/v1/goals

Graba 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

ParametroTipoDescripcion
visitorUidstringID de visitante Flowsery opcional, que generalmente se obtiene de la cookie _fs_vid en su propio backend.
sessionUidstringID de sesión Flowsery opcional, normalmente procedente de la cookie _fs_sid.
nameOBLIGATORIOstringNombre del objetivo (letras minusculas, numeros, guiones bajos y guiones; max. 64 caracteres).
metadataobjectPares 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"
  }]
}