Skip to content

Criar Oportunidade

POST /external/v1/opportunities

Cria uma nova oportunidade/lead. Um contato e criado (ou casado por e-mail) e vinculado a oportunidade automaticamente. Se nenhum owner_user_id for fornecido, a oportunidade e atribuida automaticamente pelas regras de rodizio da sua conta.

Retry seguro

Envie um header Idempotency-Key para tornar retries seguros — uma requisicao repetida com a mesma chave repete a resposta original em vez de criar um duplicado.

Autenticacao

Requer permissao opportunities:write.

Corpo da Requisicao

CampoTipoObrigatorioDescricao
namestringSimNome completo do lead (tambem usado como titulo da oportunidade)
titlestringNaoCargo/posicao do contato
companystringNaoEmpresa
locationstringNaoLocalizacao
headlinestringNaoHeadline do contato
profile_urlstringNaoURL do perfil (LinkedIn/etc.)
profile_picturestringNaoURL da foto de perfil
emailstringNaoE-mail (usado para casar um contato existente)
phonestringNaoTelefone
scorenumberNaoScore do lead (padrao: 0)
notesstringNaoNotas adicionais
campaign_idstringNaoAssociar a uma campanha
owner_user_idstringNaoAtribuir a um vendedor especifico
sector_idstringNaoAtribuir a um setor/time
pipeline_idstringNaoPipeline alvo
stage_idstringNaoEtapa alvo
sourcestringNaoOrigem do lead: linkedin, google_maps, list, paid_traffic, other (padrao: other)

Acoes opcionais

Disparam efeitos colaterais apos a oportunidade ser criada. Sao nao-bloqueantes — se uma falhar, a oportunidade ainda e criada e a falha e reportada no objeto actions da resposta.

CampoTipoObrigatorioDescricao
activate_agent_idstringNaoAtiva um agente de IA WhatsApp no contato (inicia uma conversa WhatsApp e roda o workflow do agente). O contato precisa ter phone. Sobrescreve o agente de entrada configurado no pipeline (veja a nota abaixo).
agent_channel_account_idstringNaoDe qual canal WhatsApp conectado enviar. So necessario se a conta tiver mais de um canal WhatsApp.
enroll_in_flow_idstringNaoInscreve o contato em um email flow ativo
send_template_email_idstringNaoEnvia um email de template avulso ao contato (o contato precisa ter email)
email_sender_idstringNaoRemetente para send_template_email_id (padrao: o sender default da conta)

Ativacao de agente e so WhatsApp

activate_agent_id suporta apenas agentes WhatsApp (agent_type = 'whatsapp'). Passar um agente LinkedIn/email/outro retorna activated: false com um erro explicativo em actions.agent. Agentes LinkedIn rodam via campanha (convite → aceite), nao por ativacao direta.

Agente de entrada do pipeline (default)

Um pipeline pode ter um agente de entrada padrao (Configuracoes da Pipeline → Geral). Quando definido, esse agente e ativado automaticamente para todo contato adicionado ao pipeline — inclusive via este endpoint, mesmo sem passar activate_agent_id. A precedencia e: activate_agent_id explicito > agente de entrada do pipeline > nenhum. Ou seja, so envie activate_agent_id quando quiser sobrescrever o default do pipeline.

O numero de WhatsApp de onde o agente envia e configurado no proprio agente (cada agente ativo e vinculado ao seu numero). Precedencia do canal: agent_channel_account_id explicito > numero configurado no agente > unico numero conectado da conta (automatico).

Requisicao

bash
curl --request POST \
  --url "https://app.getraze.com/external/v1/opportunities" \
  --header "Content-Type: application/json" \
  --header "X-API-Key: YOUR_API_KEY" \
  --data '{
    "name": "Jane Smith",
    "title": "CTO",
    "company": "Tech Corp",
    "email": "jane@company.com",
    "source": "paid_traffic",
    "score": 70,
    "pipeline_id": "pipe_01",
    "stage_id": "stg_new",
    "notes": "Inbound do Google Ads"
  }'
javascript
const axios = require('axios');

const response = await axios.post(
  'https://app.getraze.com/external/v1/opportunities',
  {
    name: 'Jane Smith',
    title: 'CTO',
    company: 'Tech Corp',
    email: 'jane@company.com',
    source: 'paid_traffic',
    score: 70,
    pipeline_id: 'pipe_01',
    stage_id: 'stg_new',
    notes: 'Inbound do Google Ads'
  },
  {
    headers: {
      'X-API-Key': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
python
import requests

response = requests.post(
    'https://app.getraze.com/external/v1/opportunities',
    headers={
        'X-API-Key': 'YOUR_API_KEY',
        'Content-Type': 'application/json'
    },
    json={
        'name': 'Jane Smith',
        'title': 'CTO',
        'company': 'Tech Corp',
        'email': 'jane@company.com',
        'source': 'paid_traffic',
        'score': 70,
        'pipeline_id': 'pipe_01',
        'stage_id': 'stg_new',
        'notes': 'Inbound do Google Ads'
    }
)

print(response.json())

Resposta

json
{
  "success": true,
  "data": {
    "id": "opp_xyz789abc123",
    "title": "Jane Smith",
    "score": 70,
    "source": "paid_traffic",
    "notes": "Inbound do Google Ads",
    "pipeline_id": "pipe_01",
    "stage_id": "stg_new",
    "campaign_id": null,
    "owner_user_id": "usr_123",
    "contact_id": "cnt_new001",
    "contact_name": "Jane Smith",
    "contact_email": "jane@company.com",
    "contact_phone": null,
    "contact_company": "Tech Corp",
    "contact_title": "CTO",
    "campaign_name": null,
    "owner_user_name": "Maria Silva",
    "owner_user_email": "maria@acme.com",
    "created_at": "2026-01-25T09:00:00Z",
    "updated_at": "2026-01-25T09:00:00Z"
  }
}

Com acoes opcionais

Quando voce passa activate_agent_id, enroll_in_flow_id e/ou send_template_email_id, a resposta inclui um objeto actions reportando o resultado de cada uma (a oportunidade e criada de qualquer forma):

json
{
  "success": true,
  "data": { "id": "opp_xyz789abc123", "...": "..." },
  "actions": {
    "agent": { "activated": true, "conversation_id": "conv_55", "workflow_started": true },
    "flow":  { "enrolled": true, "enrollment_id": "enr_12", "status": "active" },
    "email": { "sent": true, "email_id": "re_abc123" }
  }
}

Em caso de falha, cada acao reporta seu proprio erro sem derrubar a requisicao, ex.:

json
"actions": {
  "agent": { "activated": false, "error": "Contact has no phone number for WhatsApp" }
}

Erros

StatusCodigoDescricao
400VALIDATION_ERRORname ausente, ou campaign_id nao pertence a sua conta

Acoes opcionais nunca produzem erro de topo — reportam sucesso/falha dentro de actions.

GetRaze - AI-Powered Lead Generation