Skip to main content
POST
/
leads
/
public
/
{stepId}
cURL
curl -X POST https://api.troiachat.com/api/leads/public/507f1f77bcf86cd799439011 \
  -H "Content-Type: application/json" \
  -H "X-API-Key: sua-api-key-aqui" \
  -d '{
    "name": "Joao Silva",
    "phones": ["5511999999999"],
    "emails": ["joao@email.com"],
    "segment": "Imoveis",
    "channel": "whatsapp",
    "priority": "high"
  }'
{
  "success": true,
  "data": {
    "id": "663f1a2b3c4d5e6f7a8b9c0d",
    "contactId": "<string>",
    "segment": "Imoveis",
    "source": "meta",
    "medium": "paid",
    "channel": "whatsapp",
    "origin": "Landing Page Verao",
    "type": "<string>",
    "status": "new",
    "priority": "high",
    "temperature": "hot",
    "qualifyStatus": "pending",
    "funnelId": "<string>",
    "stepId": "<string>",
    "assigneeId": "<string>",
    "teamId": "<string>",
    "budget": 123,
    "score": 123,
    "campaignName": "<string>",
    "adsetName": "<string>",
    "adName": "<string>",
    "createdAt": "2026-04-12T14:30:00.000Z",
    "updatedAt": "2026-04-12T14:30:00.000Z"
  },
  "message": "Created successfully"
}

Authorizations

X-API-Key
string
header
required

Chave de API gerada no painel do TroiaChat. Acesse Configuracoes > API Keys para criar uma nova chave.

Path Parameters

stepId
string
required

ID da etapa do funil onde o lead sera criado. Disponivel no painel do TroiaChat em CRM > Funis > Etapa > ID.

Example:

"507f1f77bcf86cd799439011"

Body

application/json
name
string

Nome do contato. Se contactId nao for enviado, um contato sera criado com este nome.

Example:

"Joao Silva"

company
string

Empresa do contato.

Example:

"Empresa ABC"

position
string

Cargo do contato.

Example:

"Gerente Comercial"

emails

Email(s) do contato. Aceita string unica ou array. Validacao relaxada — emails com formato incorreto sao aceitos.

Example:
["joao@email.com"]
phones

Telefone(s) do contato. Aceita string unica ou array. Qualquer formato e aceito.

Example:
["5511999999999"]
contactId
string

ID de um contato existente. Se omitido, um novo contato sera criado automaticamente.

Example:

"507f1f77bcf86cd799439011"

segment
string

Segmento de negocio do lead.

Example:

"Imoveis"

description
string

Descricao livre do lead.

channel
enum<string>

Canal de origem. Normalizado automaticamente. Aceita variacoes como wpp, ig, fb, zap, site, etc.

Available options:
whatsapp,
instagram,
facebook,
messenger,
telegram,
email,
website,
phone,
google,
youtube,
tiktok,
linkedin,
bing,
other
Example:

"whatsapp"

source
enum<string>

Plataforma de marketing. Se omitido, sera inferido a partir do campo origin.

Available options:
meta,
google,
tiktok,
linkedin,
microsoft,
organic,
referral,
email,
offline,
partner,
outbound,
direct
Example:

"meta"

medium
enum<string>

Tipo de trafego. Se omitido, inferido como paid se campaignName estiver presente, caso contrario organic.

Available options:
organic,
paid
Example:

"paid"

origin
string

De onde o lead veio (texto livre). Tambem usado para inferir source e channel quando estes nao sao enviados.

Example:

"Landing Page Verao"

type
string

Classificacao do lead, conforme tipos pre-cadastrados no funil.

Example:

"Compra"

priority
enum<string>
default:medium

Prioridade do lead. Normalizado automaticamente. Default medium.

Available options:
low,
medium,
high,
urgent
Example:

"high"

temperature
enum<string>
default:cold

Temperatura do lead. Normalizado automaticamente. Default cold.

Available options:
cold,
warm,
hot
Example:

"hot"

status
enum<string>
default:new

Status inicial do lead. Default new.

Available options:
new,
contacted,
qualified,
disqualified,
converted,
lost
score
number
default:0

Pontuacao do lead. Default 0.

Example:

0

budget
number

Orcamento do lead em centavos ou valor decimal.

Required range: x >= 0
Example:

500000

assigneeId
string

ID do atendente para atribuicao manual. Se omitido, o lead e atribuido automaticamente pela configuracao do funil.

teamId
string

ID da equipe para atribuicao.

campaignName
string

Nome da campanha de marketing. Tambem aceita campaign_name (snake_case).

Example:

"Campanha Verao 2026"

adsetName
string

Nome do conjunto de anuncios. Tambem aceita adset_name.

Example:

"Publico Interesse"

adName
string

Nome do anuncio. Tambem aceita ad_name.

Example:

"Anuncio Video"

formId
string

ID do formulario de origem (ex. Meta Lead Forms). Tambem aceita form_id.

externalLeadId
string

ID do lead no sistema externo. Tambem aceita lead_id.

pageId
string

ID da pagina de origem. Tambem aceita page_id.

pageName
string

Nome da pagina de origem. Tambem aceita page_name.

Response

Lead criado com sucesso.

success
boolean
Example:

true

data
object
message
string
Example:

"Created successfully"