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

Grave um evento de meta personalizado. Apenas o nome é obrigatório; VisitorUid, sessionUid, metadados e fuso horário são opcionais.

Chave API (Bearer token)

Corpo da requisicao

ParametroTipoDescricao
visitorUidstringID de visitante Flowsery opcional, normalmente proveniente do cookie _fs_vid no seu próprio back-end.
sessionUidstringID de sessão Flowsery opcional, normalmente proveniente do cookie _fs_sid.
nameOBRIGATORIOstringNome do objetivo (letras minusculas, numeros, sublinhados e hifens; max 64 caracteres).
metadataobjectPares de valores-chave personalizados opcionais. Mantenha 10 chaves ou menos.

Regras do campo metadata

<strong>Chaves:</strong> Apenas letras minusculas, numeros, sublinhados (_) e hifens (-). Max 64 caracteres.

<strong>Valores:</strong> Qualquer string ate 255 caracteres. Conteudo HTML e script e automaticamente removido por seguranca.

<strong>Limite:</strong> Ate 10 parametros personalizados por evento.

Nenhuma visualização de página existente é necessária

O back-end pode criar o registo da meta sob pedido. Este endpoint não deve ser documentado como exigindo uma visualização de página previamente registada.

Respostas de erro

<strong>400 Bad Request</strong> – Retornado quando a carga útil é inválida.

<strong>404 Not Found</strong> – Não faz parte do contrato normal de criação de objetivos.

Exemplo de requisicao (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"
  }]
}