curl --request POST \
--url https://api.wegly.com.br/integrations/external/deals \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "Implementação completa CRM",
"value": 75000.5,
"measurement_consent": "GRANTED",
"expected_close_date": "2024-03-15T00:00:00.000Z",
"quality_rating": 4,
"quality_reason": "Cliente com budget aprovado",
"visibility": 0,
"temperature": 3,
"crm_lead_source_id": "a6e77b5f-4d66-4e78-b15f-c0e8a16db962",
"marketing": {
"url_conversion": "https://landing.wegly.com.br/obrigado?wegly_code=OPP123&utm_campaign=crm-enterprise&gclid=XYZ"
},
"tags": [
"3f6f2a5e-1c7b-4d2a-9e8f-5a4b3c2d1e0f",
"7b1d9c4e-2a3f-4b5c-8d6e-0f1a2b3c4d5e"
],
"person": {
"name": "Roberto Martins",
"contacts": [
{
"type": 0,
"value": "(11) 99988-7766"
}
],
"avoid_duplicate": true,
"duplicate_check_types": [
0
]
},
"organization": {
"name": "Tech Innovators S.A."
},
"followers": [
{
"user_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"role_id": "b2c3d4e5-f6a7-8901-bcde-f23456789012"
}
],
"note": {
"content": "Oportunidade originada da campanha enterprise.",
"is_pinned": true
}
}
'import requests
url = "https://api.wegly.com.br/integrations/external/deals"
payload = {
"title": "Implementação completa CRM",
"value": 75000.5,
"measurement_consent": "GRANTED",
"expected_close_date": "2024-03-15T00:00:00.000Z",
"quality_rating": 4,
"quality_reason": "Cliente com budget aprovado",
"visibility": 0,
"temperature": 3,
"crm_lead_source_id": "a6e77b5f-4d66-4e78-b15f-c0e8a16db962",
"marketing": { "url_conversion": "https://landing.wegly.com.br/obrigado?wegly_code=OPP123&utm_campaign=crm-enterprise&gclid=XYZ" },
"tags": ["3f6f2a5e-1c7b-4d2a-9e8f-5a4b3c2d1e0f", "7b1d9c4e-2a3f-4b5c-8d6e-0f1a2b3c4d5e"],
"person": {
"name": "Roberto Martins",
"contacts": [
{
"type": 0,
"value": "(11) 99988-7766"
}
],
"avoid_duplicate": True,
"duplicate_check_types": [0]
},
"organization": { "name": "Tech Innovators S.A." },
"followers": [
{
"user_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"role_id": "b2c3d4e5-f6a7-8901-bcde-f23456789012"
}
],
"note": {
"content": "Oportunidade originada da campanha enterprise.",
"is_pinned": True
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
title: 'Implementação completa CRM',
value: 75000.5,
measurement_consent: 'GRANTED',
expected_close_date: '2024-03-15T00:00:00.000Z',
quality_rating: 4,
quality_reason: 'Cliente com budget aprovado',
visibility: 0,
temperature: 3,
crm_lead_source_id: 'a6e77b5f-4d66-4e78-b15f-c0e8a16db962',
marketing: {
url_conversion: 'https://landing.wegly.com.br/obrigado?wegly_code=OPP123&utm_campaign=crm-enterprise&gclid=XYZ'
},
tags: ['3f6f2a5e-1c7b-4d2a-9e8f-5a4b3c2d1e0f', '7b1d9c4e-2a3f-4b5c-8d6e-0f1a2b3c4d5e'],
person: {
name: 'Roberto Martins',
contacts: [{type: 0, value: '(11) 99988-7766'}],
avoid_duplicate: true,
duplicate_check_types: [0]
},
organization: {name: 'Tech Innovators S.A.'},
followers: [
{
user_id: 'a1b2c3d4-e5f6-7890-abcd-ef1234567890',
role_id: 'b2c3d4e5-f6a7-8901-bcde-f23456789012'
}
],
note: {content: 'Oportunidade originada da campanha enterprise.', is_pinned: true}
})
};
fetch('https://api.wegly.com.br/integrations/external/deals', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.wegly.com.br/integrations/external/deals",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'title' => 'Implementação completa CRM',
'value' => 75000.5,
'measurement_consent' => 'GRANTED',
'expected_close_date' => '2024-03-15T00:00:00.000Z',
'quality_rating' => 4,
'quality_reason' => 'Cliente com budget aprovado',
'visibility' => 0,
'temperature' => 3,
'crm_lead_source_id' => 'a6e77b5f-4d66-4e78-b15f-c0e8a16db962',
'marketing' => [
'url_conversion' => 'https://landing.wegly.com.br/obrigado?wegly_code=OPP123&utm_campaign=crm-enterprise&gclid=XYZ'
],
'tags' => [
'3f6f2a5e-1c7b-4d2a-9e8f-5a4b3c2d1e0f',
'7b1d9c4e-2a3f-4b5c-8d6e-0f1a2b3c4d5e'
],
'person' => [
'name' => 'Roberto Martins',
'contacts' => [
[
'type' => 0,
'value' => '(11) 99988-7766'
]
],
'avoid_duplicate' => true,
'duplicate_check_types' => [
0
]
],
'organization' => [
'name' => 'Tech Innovators S.A.'
],
'followers' => [
[
'user_id' => 'a1b2c3d4-e5f6-7890-abcd-ef1234567890',
'role_id' => 'b2c3d4e5-f6a7-8901-bcde-f23456789012'
]
],
'note' => [
'content' => 'Oportunidade originada da campanha enterprise.',
'is_pinned' => true
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.wegly.com.br/integrations/external/deals"
payload := strings.NewReader("{\n \"title\": \"Implementação completa CRM\",\n \"value\": 75000.5,\n \"measurement_consent\": \"GRANTED\",\n \"expected_close_date\": \"2024-03-15T00:00:00.000Z\",\n \"quality_rating\": 4,\n \"quality_reason\": \"Cliente com budget aprovado\",\n \"visibility\": 0,\n \"temperature\": 3,\n \"crm_lead_source_id\": \"a6e77b5f-4d66-4e78-b15f-c0e8a16db962\",\n \"marketing\": {\n \"url_conversion\": \"https://landing.wegly.com.br/obrigado?wegly_code=OPP123&utm_campaign=crm-enterprise&gclid=XYZ\"\n },\n \"tags\": [\n \"3f6f2a5e-1c7b-4d2a-9e8f-5a4b3c2d1e0f\",\n \"7b1d9c4e-2a3f-4b5c-8d6e-0f1a2b3c4d5e\"\n ],\n \"person\": {\n \"name\": \"Roberto Martins\",\n \"contacts\": [\n {\n \"type\": 0,\n \"value\": \"(11) 99988-7766\"\n }\n ],\n \"avoid_duplicate\": true,\n \"duplicate_check_types\": [\n 0\n ]\n },\n \"organization\": {\n \"name\": \"Tech Innovators S.A.\"\n },\n \"followers\": [\n {\n \"user_id\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n \"role_id\": \"b2c3d4e5-f6a7-8901-bcde-f23456789012\"\n }\n ],\n \"note\": {\n \"content\": \"Oportunidade originada da campanha enterprise.\",\n \"is_pinned\": true\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.wegly.com.br/integrations/external/deals")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"Implementação completa CRM\",\n \"value\": 75000.5,\n \"measurement_consent\": \"GRANTED\",\n \"expected_close_date\": \"2024-03-15T00:00:00.000Z\",\n \"quality_rating\": 4,\n \"quality_reason\": \"Cliente com budget aprovado\",\n \"visibility\": 0,\n \"temperature\": 3,\n \"crm_lead_source_id\": \"a6e77b5f-4d66-4e78-b15f-c0e8a16db962\",\n \"marketing\": {\n \"url_conversion\": \"https://landing.wegly.com.br/obrigado?wegly_code=OPP123&utm_campaign=crm-enterprise&gclid=XYZ\"\n },\n \"tags\": [\n \"3f6f2a5e-1c7b-4d2a-9e8f-5a4b3c2d1e0f\",\n \"7b1d9c4e-2a3f-4b5c-8d6e-0f1a2b3c4d5e\"\n ],\n \"person\": {\n \"name\": \"Roberto Martins\",\n \"contacts\": [\n {\n \"type\": 0,\n \"value\": \"(11) 99988-7766\"\n }\n ],\n \"avoid_duplicate\": true,\n \"duplicate_check_types\": [\n 0\n ]\n },\n \"organization\": {\n \"name\": \"Tech Innovators S.A.\"\n },\n \"followers\": [\n {\n \"user_id\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n \"role_id\": \"b2c3d4e5-f6a7-8901-bcde-f23456789012\"\n }\n ],\n \"note\": {\n \"content\": \"Oportunidade originada da campanha enterprise.\",\n \"is_pinned\": true\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.wegly.com.br/integrations/external/deals")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"Implementação completa CRM\",\n \"value\": 75000.5,\n \"measurement_consent\": \"GRANTED\",\n \"expected_close_date\": \"2024-03-15T00:00:00.000Z\",\n \"quality_rating\": 4,\n \"quality_reason\": \"Cliente com budget aprovado\",\n \"visibility\": 0,\n \"temperature\": 3,\n \"crm_lead_source_id\": \"a6e77b5f-4d66-4e78-b15f-c0e8a16db962\",\n \"marketing\": {\n \"url_conversion\": \"https://landing.wegly.com.br/obrigado?wegly_code=OPP123&utm_campaign=crm-enterprise&gclid=XYZ\"\n },\n \"tags\": [\n \"3f6f2a5e-1c7b-4d2a-9e8f-5a4b3c2d1e0f\",\n \"7b1d9c4e-2a3f-4b5c-8d6e-0f1a2b3c4d5e\"\n ],\n \"person\": {\n \"name\": \"Roberto Martins\",\n \"contacts\": [\n {\n \"type\": 0,\n \"value\": \"(11) 99988-7766\"\n }\n ],\n \"avoid_duplicate\": true,\n \"duplicate_check_types\": [\n 0\n ]\n },\n \"organization\": {\n \"name\": \"Tech Innovators S.A.\"\n },\n \"followers\": [\n {\n \"user_id\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n \"role_id\": \"b2c3d4e5-f6a7-8901-bcde-f23456789012\"\n }\n ],\n \"note\": {\n \"content\": \"Oportunidade originada da campanha enterprise.\",\n \"is_pinned\": true\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"code": 123,
"title": "<string>",
"measurement_consent": "GRANTED"
}{
"statusCode": 123,
"message": "<string>",
"error": "<string>"
}Criação de oportunidades
Cria uma oportunidade (deal) usando a chave de integração, aplicando as mesmas validações internas: estágio/responsável padrão quando omitidos (um responsible_id inativo ou arquivado é substituído pelo usuário master da conta, com nota automática), conflito proibido entre organization_id e organization, origem manual aceita apenas por crm_lead_source_id (lead_source não é suportado), deduplicação de pessoa quando avoid_duplicate e duplicate_check_types forem enviados, rastreio de marketing por wegly_code (quando crm_lead_source_id também é enviado, é ele que define a origem retornada em deal_source), fallback de origem por wegly_source/utm_source e extração automática de parâmetros da url_conversion, criação de ferramenta de conversão quando necessário e registro opcional de nota inicial/seguidores. Consentimento top-level, alias legado e URL são validados antes da idempotência e da deduplicação; divergência retorna 400 sem reservar evento, alterar pessoa ou criar oportunidade.
Aceita x-idempotency-key no header ou idempotency_key no body. Uma criação já concluída retorna o mesmo id, code e title com measurement_consent efetivo. Uma tentativa ainda em processamento retorna 409. Se a criação falhar depois de iniciada (referência inexistente, campo personalizado obrigatório ausente ou erro em seguidores/nota), a chave fica consumida e continua retornando 409; envie uma nova chave. Todos os campos personalizados obrigatórios da entidade precisam ser enviados. Seguidores e nota são gravados depois do registro: se falharem, a resposta é de erro, mas o registro permanece criado. Webhooks e notificações podem ser entregues de forma assíncrona após a resposta. measurement_consent é canônico; valores conflitantes com marketing.measurement_consent ou a URL retornam 400 antes das mutações.
curl --request POST \
--url https://api.wegly.com.br/integrations/external/deals \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "Implementação completa CRM",
"value": 75000.5,
"measurement_consent": "GRANTED",
"expected_close_date": "2024-03-15T00:00:00.000Z",
"quality_rating": 4,
"quality_reason": "Cliente com budget aprovado",
"visibility": 0,
"temperature": 3,
"crm_lead_source_id": "a6e77b5f-4d66-4e78-b15f-c0e8a16db962",
"marketing": {
"url_conversion": "https://landing.wegly.com.br/obrigado?wegly_code=OPP123&utm_campaign=crm-enterprise&gclid=XYZ"
},
"tags": [
"3f6f2a5e-1c7b-4d2a-9e8f-5a4b3c2d1e0f",
"7b1d9c4e-2a3f-4b5c-8d6e-0f1a2b3c4d5e"
],
"person": {
"name": "Roberto Martins",
"contacts": [
{
"type": 0,
"value": "(11) 99988-7766"
}
],
"avoid_duplicate": true,
"duplicate_check_types": [
0
]
},
"organization": {
"name": "Tech Innovators S.A."
},
"followers": [
{
"user_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"role_id": "b2c3d4e5-f6a7-8901-bcde-f23456789012"
}
],
"note": {
"content": "Oportunidade originada da campanha enterprise.",
"is_pinned": true
}
}
'import requests
url = "https://api.wegly.com.br/integrations/external/deals"
payload = {
"title": "Implementação completa CRM",
"value": 75000.5,
"measurement_consent": "GRANTED",
"expected_close_date": "2024-03-15T00:00:00.000Z",
"quality_rating": 4,
"quality_reason": "Cliente com budget aprovado",
"visibility": 0,
"temperature": 3,
"crm_lead_source_id": "a6e77b5f-4d66-4e78-b15f-c0e8a16db962",
"marketing": { "url_conversion": "https://landing.wegly.com.br/obrigado?wegly_code=OPP123&utm_campaign=crm-enterprise&gclid=XYZ" },
"tags": ["3f6f2a5e-1c7b-4d2a-9e8f-5a4b3c2d1e0f", "7b1d9c4e-2a3f-4b5c-8d6e-0f1a2b3c4d5e"],
"person": {
"name": "Roberto Martins",
"contacts": [
{
"type": 0,
"value": "(11) 99988-7766"
}
],
"avoid_duplicate": True,
"duplicate_check_types": [0]
},
"organization": { "name": "Tech Innovators S.A." },
"followers": [
{
"user_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"role_id": "b2c3d4e5-f6a7-8901-bcde-f23456789012"
}
],
"note": {
"content": "Oportunidade originada da campanha enterprise.",
"is_pinned": True
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
title: 'Implementação completa CRM',
value: 75000.5,
measurement_consent: 'GRANTED',
expected_close_date: '2024-03-15T00:00:00.000Z',
quality_rating: 4,
quality_reason: 'Cliente com budget aprovado',
visibility: 0,
temperature: 3,
crm_lead_source_id: 'a6e77b5f-4d66-4e78-b15f-c0e8a16db962',
marketing: {
url_conversion: 'https://landing.wegly.com.br/obrigado?wegly_code=OPP123&utm_campaign=crm-enterprise&gclid=XYZ'
},
tags: ['3f6f2a5e-1c7b-4d2a-9e8f-5a4b3c2d1e0f', '7b1d9c4e-2a3f-4b5c-8d6e-0f1a2b3c4d5e'],
person: {
name: 'Roberto Martins',
contacts: [{type: 0, value: '(11) 99988-7766'}],
avoid_duplicate: true,
duplicate_check_types: [0]
},
organization: {name: 'Tech Innovators S.A.'},
followers: [
{
user_id: 'a1b2c3d4-e5f6-7890-abcd-ef1234567890',
role_id: 'b2c3d4e5-f6a7-8901-bcde-f23456789012'
}
],
note: {content: 'Oportunidade originada da campanha enterprise.', is_pinned: true}
})
};
fetch('https://api.wegly.com.br/integrations/external/deals', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.wegly.com.br/integrations/external/deals",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'title' => 'Implementação completa CRM',
'value' => 75000.5,
'measurement_consent' => 'GRANTED',
'expected_close_date' => '2024-03-15T00:00:00.000Z',
'quality_rating' => 4,
'quality_reason' => 'Cliente com budget aprovado',
'visibility' => 0,
'temperature' => 3,
'crm_lead_source_id' => 'a6e77b5f-4d66-4e78-b15f-c0e8a16db962',
'marketing' => [
'url_conversion' => 'https://landing.wegly.com.br/obrigado?wegly_code=OPP123&utm_campaign=crm-enterprise&gclid=XYZ'
],
'tags' => [
'3f6f2a5e-1c7b-4d2a-9e8f-5a4b3c2d1e0f',
'7b1d9c4e-2a3f-4b5c-8d6e-0f1a2b3c4d5e'
],
'person' => [
'name' => 'Roberto Martins',
'contacts' => [
[
'type' => 0,
'value' => '(11) 99988-7766'
]
],
'avoid_duplicate' => true,
'duplicate_check_types' => [
0
]
],
'organization' => [
'name' => 'Tech Innovators S.A.'
],
'followers' => [
[
'user_id' => 'a1b2c3d4-e5f6-7890-abcd-ef1234567890',
'role_id' => 'b2c3d4e5-f6a7-8901-bcde-f23456789012'
]
],
'note' => [
'content' => 'Oportunidade originada da campanha enterprise.',
'is_pinned' => true
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.wegly.com.br/integrations/external/deals"
payload := strings.NewReader("{\n \"title\": \"Implementação completa CRM\",\n \"value\": 75000.5,\n \"measurement_consent\": \"GRANTED\",\n \"expected_close_date\": \"2024-03-15T00:00:00.000Z\",\n \"quality_rating\": 4,\n \"quality_reason\": \"Cliente com budget aprovado\",\n \"visibility\": 0,\n \"temperature\": 3,\n \"crm_lead_source_id\": \"a6e77b5f-4d66-4e78-b15f-c0e8a16db962\",\n \"marketing\": {\n \"url_conversion\": \"https://landing.wegly.com.br/obrigado?wegly_code=OPP123&utm_campaign=crm-enterprise&gclid=XYZ\"\n },\n \"tags\": [\n \"3f6f2a5e-1c7b-4d2a-9e8f-5a4b3c2d1e0f\",\n \"7b1d9c4e-2a3f-4b5c-8d6e-0f1a2b3c4d5e\"\n ],\n \"person\": {\n \"name\": \"Roberto Martins\",\n \"contacts\": [\n {\n \"type\": 0,\n \"value\": \"(11) 99988-7766\"\n }\n ],\n \"avoid_duplicate\": true,\n \"duplicate_check_types\": [\n 0\n ]\n },\n \"organization\": {\n \"name\": \"Tech Innovators S.A.\"\n },\n \"followers\": [\n {\n \"user_id\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n \"role_id\": \"b2c3d4e5-f6a7-8901-bcde-f23456789012\"\n }\n ],\n \"note\": {\n \"content\": \"Oportunidade originada da campanha enterprise.\",\n \"is_pinned\": true\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.wegly.com.br/integrations/external/deals")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"Implementação completa CRM\",\n \"value\": 75000.5,\n \"measurement_consent\": \"GRANTED\",\n \"expected_close_date\": \"2024-03-15T00:00:00.000Z\",\n \"quality_rating\": 4,\n \"quality_reason\": \"Cliente com budget aprovado\",\n \"visibility\": 0,\n \"temperature\": 3,\n \"crm_lead_source_id\": \"a6e77b5f-4d66-4e78-b15f-c0e8a16db962\",\n \"marketing\": {\n \"url_conversion\": \"https://landing.wegly.com.br/obrigado?wegly_code=OPP123&utm_campaign=crm-enterprise&gclid=XYZ\"\n },\n \"tags\": [\n \"3f6f2a5e-1c7b-4d2a-9e8f-5a4b3c2d1e0f\",\n \"7b1d9c4e-2a3f-4b5c-8d6e-0f1a2b3c4d5e\"\n ],\n \"person\": {\n \"name\": \"Roberto Martins\",\n \"contacts\": [\n {\n \"type\": 0,\n \"value\": \"(11) 99988-7766\"\n }\n ],\n \"avoid_duplicate\": true,\n \"duplicate_check_types\": [\n 0\n ]\n },\n \"organization\": {\n \"name\": \"Tech Innovators S.A.\"\n },\n \"followers\": [\n {\n \"user_id\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n \"role_id\": \"b2c3d4e5-f6a7-8901-bcde-f23456789012\"\n }\n ],\n \"note\": {\n \"content\": \"Oportunidade originada da campanha enterprise.\",\n \"is_pinned\": true\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.wegly.com.br/integrations/external/deals")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"Implementação completa CRM\",\n \"value\": 75000.5,\n \"measurement_consent\": \"GRANTED\",\n \"expected_close_date\": \"2024-03-15T00:00:00.000Z\",\n \"quality_rating\": 4,\n \"quality_reason\": \"Cliente com budget aprovado\",\n \"visibility\": 0,\n \"temperature\": 3,\n \"crm_lead_source_id\": \"a6e77b5f-4d66-4e78-b15f-c0e8a16db962\",\n \"marketing\": {\n \"url_conversion\": \"https://landing.wegly.com.br/obrigado?wegly_code=OPP123&utm_campaign=crm-enterprise&gclid=XYZ\"\n },\n \"tags\": [\n \"3f6f2a5e-1c7b-4d2a-9e8f-5a4b3c2d1e0f\",\n \"7b1d9c4e-2a3f-4b5c-8d6e-0f1a2b3c4d5e\"\n ],\n \"person\": {\n \"name\": \"Roberto Martins\",\n \"contacts\": [\n {\n \"type\": 0,\n \"value\": \"(11) 99988-7766\"\n }\n ],\n \"avoid_duplicate\": true,\n \"duplicate_check_types\": [\n 0\n ]\n },\n \"organization\": {\n \"name\": \"Tech Innovators S.A.\"\n },\n \"followers\": [\n {\n \"user_id\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n \"role_id\": \"b2c3d4e5-f6a7-8901-bcde-f23456789012\"\n }\n ],\n \"note\": {\n \"content\": \"Oportunidade originada da campanha enterprise.\",\n \"is_pinned\": true\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"code": 123,
"title": "<string>",
"measurement_consent": "GRANTED"
}{
"statusCode": 123,
"message": "<string>",
"error": "<string>"
}Authorizations
Chave de integração com prefixo wegly_, enviada em Authorization: Bearer . Não é JWT. A chave deve estar ativa, não excluída e dentro da validade. Com allowed_domain, Origin (ou Referer na ausência de Origin) precisa informar o hostname permitido. A empresa e as permissões são obtidas pela chave.
Headers
Chave da tentativa lógica de criação. Tem prioridade sobre idempotency_key no body; mantenha a mesma chave ao repetir uma chamada sem resposta e use uma nova depois de uma criação que falhou após iniciada.
Body
1 - 150Etapa do funil de oportunidades. Caso omitido, usa a primeira etapa do funil primário.
Responsável pela oportunidade. Padrão: criador da chave. Se o usuário informado estiver inativo ou arquivado, o registro é atribuído ao usuário master da conta, com nota automática; usuário inexistente ou de outra empresa retorna 400.
1, 2, 3, 4, 5 Motivo da qualificação; obrigatório se o funil exigir.
Valor monetário com até 2 casas decimais.
Data prevista de fechamento.
0 = privado (responsável e supervisores), 1 = equipe/responsável, 2 = público.
0, 1, 2 1 = frio, 2 = morno, 3 = quente.
1, 2, 3 Lista de IDs de tags existentes. IDs inexistentes resultam em erro.
IDs de pessoas já cadastradas que serão associadas.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Define o participante principal quando múltiplas pessoas são associadas.
Organização existente. Conflita com organization.
Show child attributes
Show child attributes
Respostas dos campos personalizados. Todos os campos obrigatórios da entidade precisam ser enviados; campos do tipo arquivo não são aceitos nesta rota.
Show child attributes
Show child attributes
Padrão GRANTED quando omitido na criação.
GRANTED, DENIED, UNSPECIFIED Rastreio de marketing. Todos os valores são sanitizados (trim) e campos vazios são ignorados. utm_* são normalizados para wegly_* equivalentes quando estes não forem enviados. utm_term vira utm_search_term se o campo específico não for enviado. url_conversion tem seus parâmetros extraídos automaticamente (wegly_code, wegly_source, wegly_campaign, wegly_ad_set, wegly_content, wegly_displayed_on, wegly_conversion_tool, utm_*, gclid, fbclid). Em POST e PUT, measurement_consent na URL também é extraído. Valor desconhecido, duplicado divergente ou presente em URL malformada vira UNSPECIFIED; divergência com o body retorna 400. Sem GRANTED, obref é removido da query e o fragmento inteiro da URL completa é descartado; a URL integral nunca é registrada em logs. O alias isolado, um objeto vazio ou somente campos nulos/em branco não constituem aquisição e não criam snapshot/log. Quando wegly_code referencia um tracker válido e não há crm_lead_source_id, a origem do registro é a do tracker. No PUT, os campos enviados corrigem a aquisição atual: omitidos são preservados e null limpa o valor. Quando não há tracker nem origem explícita, wegly_source ou utm_source busca/cria a origem automaticamente.
Show child attributes
Show child attributes
Origem existente. Única forma aceita para informar origem manual nesta API.
Seguidores adicionados após a criação da oportunidade. Usuários duplicados na lista são ignorados. Se a gravação falhar, a API retorna erro, mas o registro permanece criado.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Chave da tentativa lógica de criação. O header x-idempotency-key, quando preenchido, tem prioridade. Reutilize a mesma chave para repetir uma chamada sem resposta; depois de uma criação que falhou após iniciada, use uma nova chave.
255Response
Oportunidade criada com sucesso.
Retorno da criação de oportunidade.
Código sequencial interno da oportunidade.
Consentimento para mensuração: GRANTED autoriza, DENIED recusa e UNSPECIFIED registra que não houve decisão informada. Em respostas de registros históricos sem valor canônico oficial, a API usa a decisão oficial do snapshot ativo mais recente; snapshots sem decisão não a sombreiam e a ausência de ambos resulta em UNSPECIFIED, sem backfill.
GRANTED, DENIED, UNSPECIFIED 