Referência Técnica — Integração Pipedrive → Omie
Atualizado: 2026-07-08 · por: sessão manual · validação prod + fuso horário · rev: 3
IDs, URLs, credenciais, custom fields, paths no blueprint, snippets de payload. Usar como cheat sheet ao mexer no cenário.
⚠️ PEGADINHA DE FUSO — ler antes de correlacionar horários. A UI do Make (org 115055) exibe os horários em UTC-2, que fica 1h à frente do horário real do Brasil/Bepex (UTC-3). O WhatsApp/Chatwoot e o relógio da Daiane mostram UTC-3. Então, ao cruzar um log do Make com um horário que o cliente/Daiane reportou: horário real (BRT) = horário da UI do Make − 1h. Ex.: run que a UI mostra "18:27" aconteceu às 17:27 BRT. (Vale pra todos os cenários do org 115055 — candidato a virar nota na skill make-bepex.)
Cenário no Make
| Campo |
Valor |
| Nome |
Pipedrive to Omie (Instant) |
| ID |
2912018 |
| Org |
Bepex (115055) |
| Organization ID interno |
290560 |
| Pasta |
Pipedrive |
| Status |
Active |
| URL editor |
https://us1.make.com/115055/scenarios/2912018/edit |
| URL histórico |
https://us1.make.com/115055/scenarios/2912018/logs |
| Versão deprecada |
Pipedrive to Omie (Deprecated) (pasta DEPRECADOS, desativada desde 2023-12-01) |
Webhook trigger
| Campo |
Valor |
| URL pública |
https://hook.us1.make.com/${WEBHOOK_MAKE_PIPEDRIVE_OMIE} |
hookId interno |
1652440 |
| Module ID |
[77] (gateway:CustomWebHook) |
| Payload mínimo |
{ "deal id": ..., "id do orcamento": ... } |
Clone de teste (parado, mantido pra referência/futuros testes)
| Campo |
Valor |
| Nome |
Pipedrive to Omie (Instant) - CLONE for CPF testing 2026-04-29 |
| ID |
4706443 |
| Webhook próprio |
https://hook.us1.make.com/${WEBHOOK_MAKE_PIPEDRIVE_OMIE_CLONE} |
| Status |
Inactive |
Tenants Omie (multi-tenant)
| Tenant |
Filter (empresa.nome contém) |
app_key |
conta corrente |
SetVar module |
| DALE Metais |
DALE (CI) |
${OMIE_APP_KEY_DALE} |
4605038485 |
[49] |
| ONIX |
ONIX (CI) |
${OMIE_APP_KEY_ONIX} |
2286054792 |
[50] |
| ATARES |
atares (CI) |
${OMIE_APP_KEY_ATARES} |
10755908313 |
[86] |
App secrets também hardcoded no blueprint dentro do mapper de cada SetVar. Não documentar aqui em texto plano — abrir o módulo via Make UI ou via blueprint API se precisar.
Credenciais e auth
FlowTech (bepex.flowtech.net.br)
| Campo |
Valor |
| Endpoint marca-concluído |
POST /integracao/orcamento/{id}/marcar-concluido |
| Header auth |
Authorization: Token ${FLOWTECH_API_TOKEN} |
| Usado em |
[9] |
DateCode (api.datecode.com.br)
| Campo |
Valor |
| Endpoint |
POST /v2/dados/consulta |
| Header auth |
Authorization: Basic ${FLOWTECH_BASIC_AUTH} (decode → enrico@bepex.com.br:${FLOWTECH_SENHA}) |
| Tipos aceitos |
"PJ" e "PF" (confirmado em produção 04/05/2026) |
| Body |
{ "document": "...", "tipoPessoa": "PJ\|PF" } |
| Usado em |
[33] |
Pipedrive
| Campo |
Valor |
| Connection ID no Make |
504644 |
| Domain |
bepex.pipedrive.com |
| Usado em |
[73], [78] |
Omie (apps por tenant, ver acima)
| Campo |
Valor |
| Base URL |
https://app.omie.com.br/api/v1/ |
| Endpoints usados |
geral/clientes/, produtos/pedidovenda/, geral/produtos/, geral/malha/, geral/vendedores/ |
| Auth |
app_key + app_secret no body do request (não header) |
Custom fields críticos
Pipedrive Deal
| Hash |
Significado |
Valor setado pelo cenário |
934241be2703a7ccdaf77bc01a04a7224ec935ad |
"Status integração Omie" (provável) |
261 (= "Enviado pra Omie") |
Pipedrive Organization
| Hash |
Significado |
04383a86d143afb3acccb175c8b6f3e7333998cc |
Razão Social (PJ) |
address_route (padrão) |
Rua |
address_street_number (padrão) |
Número |
address_sublocality (padrão) |
Bairro |
address_admin_area_level_2 (padrão) |
Cidade |
address_admin_area_level_1 (padrão) |
Estado/UF |
address_postal_code (padrão) |
CEP |
address_formatted_address (padrão) |
Endereço completo formatado |
Importante: os address_* subcampos só ficam preenchidos se o vendedor usou o autocomplete Google ao digitar o endereço. Se digitou texto puro, o address fica como string e os subcampos vazios — quebra a integração silenciosamente.
Paths no blueprint (validados)
[77] webhook bp.flow[0]
[9] FlowTech bp.flow[1]
[73] UpdateDeal bp.flow[2]
[78] GetOrganization bp.flow[3]
[45] Router principal bp.flow[4]
[49] SetVar DALE bp.flow[4].routes[0].flow[0]
[50] SetVar ONIX bp.flow[4].routes[1].flow[0]
[86] SetVar ATARES bp.flow[4].routes[2].flow[0]
[53] sub-router bp.flow[4].routes[3].flow[0]
[51] GetVariables bp.flow[4].routes[3].flow[0].routes[0].flow[0]
[54] cnpj ajustado bp.flow[4].routes[3].flow[0].routes[0].flow[1]
[43] ListarVendedores bp.flow[4].routes[3].flow[0].routes[0].flow[2]
[52] sub-router bp.flow[4].routes[3].flow[0].routes[0].flow[3]
# route[0].flow = [33, 92, 93, 91] (atualizado 2026-07-07 — inseridos 92/93 antes do guard 91)
[33] DateCode [52].routes[0].flow[0]
[92] SetVar uf_guard [52].routes[0].flow[1] ← inserido 2026-07-07
[93] GetVar uf_guard [52].routes[0].flow[2] ← inserido 2026-07-07
[91] Router Guard UF [52].routes[0].flow[3]
[90] Alerta UF Vazia [91].routes[0].flow[0] filtro {{length(93.uf_guard)}} = 0
[31] IncluirCliente [91].routes[1].flow[0] filtro {{length(93.uf_guard)}} > 0
[38] Router pós-cliente [91].routes[1].flow[1]
[36] SetVar cnpj_adicionado [38].routes[0].flow[0] (31.statusCode == 200)
[39] SetVar cnpj_existente [38].routes[1].flow[0] (500 + "já cadastrado")
# route[1].flow = [56]
[56] sub-router [52].routes[1].flow[0]
[55] GetVariables [56].routes[0].flow[0]
[57] AdicionarPedido [56].routes[0].flow[1]
[11] Iterar Produtos Finais [56].routes[0].flow[2]
[12] IncluirProduto [56].routes[0].flow[3]
[25] Router pós-produto [56].routes[0].flow[4]
[59] sub-router [56].routes[0].flow[5]
[60] GetVariables
[69] ConsultarProduto
[61] IncluirItemPedido
Guard UF (router 91) — filtros e variável (fix 2026-07-07)
| Item |
Valor |
[92] SetVariable |
nome uf_guard, scope roundtrip, value = {{ifempty(33.data[].enderecos[].uf; switch(78.address_admin_area_level_1; ...27 estados...; 78.address_admin_area_level_1))}} (mesma expressão do campo estado do [31]) |
[93] GetVariables |
lê uf_guard (surface pro filtro) |
Filtro rota alerta ([90]) |
{{length(93.uf_guard)}} — number:equal 0 |
Filtro rota adiciona-cliente ([31]) |
{{length(93.uf_guard)}} — number:greater 0 |
⚠️ Nunca usar {{93.uf_guard}} cru no filtro (retorna null) nem 33.data[].enderecos[].uf cru (vira array). Sempre length(93.uf_guard).
Snippets de payload (referência rápida)
IncluirCliente ([31]) — body atual
{
"call": "IncluirCliente",
"app_key": "{{51.app_key}}",
"app_secret": "{{51.app_secret}}",
"param": [{
"codigo_cliente_integracao": "{{54.cnpj ajustado}}",
"email": "{{ifempty(9.data.cliente.email; 33.data[].emails[].email)}}",
"razao_social": "{{substring(ifempty(ifempty(78.`04383a86d143afb3acccb175c8b6f3e7333998cc`; 33.data[].empresa.razaoSocial); 9.data.cliente.nome); 0; 60)}}",
"cnpj_cpf": "{{ifempty(9.data.cliente.cnpj; 9.data.cliente.cpf)}}",
"telefone1_ddd": "{{33.data[].telefones[].ddd}}",
"telefone1_numero": "{{33.data[].telefones[].telefone}}",
"contato": "{{73.person_id.name}}",
"endereco": "{{ifempty(78.address_route; 33.data[].enderecos[].logradouro)}}",
"endereco_numero": "{{ifempty(ifempty(78.address_street_number; 33.data[].enderecos[].numero); \"SN\")}}",
"bairro": "{{ifempty(78.address_sublocality; 33.data[].enderecos[].bairro)}}",
"complemento": "{{substring(33.data[].enderecos[].complemento; 0; 60)}}",
"estado": "{{ifempty(33.data[].enderecos[].uf; switch(78.address_admin_area_level_1; \"Acre\"; \"AC\"; \"Alagoas\"; \"AL\"; \"Amapá\"; \"AP\"; \"Amazonas\"; \"AM\"; \"Bahia\"; \"BA\"; \"Ceará\"; \"CE\"; \"Distrito Federal\"; \"DF\"; \"Espírito Santo\"; \"ES\"; \"Goiás\"; \"GO\"; \"Maranhão\"; \"MA\"; \"Mato Grosso\"; \"MT\"; \"Mato Grosso do Sul\"; \"MS\"; \"Minas Gerais\"; \"MG\"; \"Pará\"; \"PA\"; \"Paraíba\"; \"PB\"; \"Paraná\"; \"PR\"; \"Pernambuco\"; \"PE\"; \"Piauí\"; \"PI\"; \"Rio de Janeiro\"; \"RJ\"; \"Rio Grande do Norte\"; \"RN\"; \"Rio Grande do Sul\"; \"RS\"; \"Rondônia\"; \"RO\"; \"Roraima\"; \"RR\"; \"Santa Catarina\"; \"SC\"; \"São Paulo\"; \"SP\"; \"Sergipe\"; \"SE\"; \"Tocantins\"; \"TO\"; 78.address_admin_area_level_1))}}",
"cidade": "{{ifempty(78.address_admin_area_level_2; 33.data[].enderecos[].cidade)}}",
"cep": "{{if(length(78.address_postal_code) < 8; 33.data[].enderecos[].cepFormatado; 78.address_postal_code)}}",
"nome_fantasia": "{{substring(ifempty(ifempty(78.`04383a86d143afb3acccb175c8b6f3e7333998cc`; 33.data[].empresa.razaoSocial); 9.data.cliente.nome); 0; 60)}}",
"contribuinte": "{{if(9.data.cliente.cnpj; \"S\"; \"N\")}}",
"bloquear_faturamento": "N",
"recomendacoes": [{
"codigo_vendedor": "{{43.data.cadastro[].codigo}}"
}]
}]
}
DateCode ([33]) — body atual
{
"document": "{{54.cnpj ajustado}}",
"tipoPessoa": "{{if(9.data.cliente.cnpj; \"PJ\"; \"PF\")}}"
}
AdicionarPedido ([57]) — body
{
"call": "AdicionarPedido",
"app_key": "{{51.app_key}}",
"app_secret": "{{51.app_secret}}",
"param": [{
"codigo_pedido_integracao": "{{timestamp}}",
"codigo_cliente": "{{55.código cliente omie}}",
"codigo_cenario_impostos": 4607146685,
"codigo_parcela": "{{9.data.orcamento.codigo_pagamento_omie}}",
"codigo_categoria": "1.01.01",
"codigo_conta_corrente": "{{51.conta corrente}}"
}]
}
IncluirItemPedido ([61]) — body
{
"call": "IncluirItemPedido",
"app_key": "{{51.app_key}}",
"app_secret": "{{51.app_secret}}",
"param": [{
"codigo_pedido": "{{57.data.codigo_pedido}}",
"codigo_produto": "{{69.data.codigo_produto}}",
"quantidade": "{{11.qtd}}",
"valor_unitario": "{{11.preco_unitario_custo}}",
"cfop": "5.102"
}]
}
Dados de teste (validados em produção)
Caso PF — Wellington Martins Gonçalves
| Campo |
Valor |
| Pipedrive deal id |
74183 |
| FlowTech orçamento id |
30666 |
| CPF |
087.348.207-79 (08734820779 sem máscara) |
| Pipedrive Person id |
36090 |
| Pipedrive Org id |
24970 (Org-falsa-pra-PF com nome=nome da pessoa) |
| Tenant Omie |
ATARES |
| Pedido criado (validação 04/05 18:20 BRT — clone) |
numero 0000000000000459, codigo_pedido 11050337175 |
| Pedido criado (validação 04/05 21:03 BRT — produção) |
numero 0000000000000460, codigo_pedido 11050367661 |
Caso PJ — 3D ESQUADRIAS COMERCIO E SERVICOS LTDA
| Campo |
Valor |
| Pipedrive deal id |
74193 |
| FlowTech orçamento id |
30800 |
| CNPJ |
22.734.767/0001-87 |
| Tenant Omie |
(depende da empresa.nome) |
| Execução referência |
3f1279d2bd8047c8b35e14531b07f08b (29/abr 09:31:15) |
Comandos úteis (API Make)
GET blueprint
$.ajax({
url: '/api/v2/scenarios/2912018/blueprint',
method: 'GET',
success: (data) => { window.__bp = data.response.blueprint; }
});
PATCH blueprint
$.ajax({
url: '/api/v2/scenarios/2912018',
method: 'PATCH',
contentType: 'application/json; charset=utf-8',
data: JSON.stringify({ blueprint: JSON.stringify(bp) })
});
Listar últimas execuções
$.ajax({
url: '/api/v2/scenarios/2912018/logs?pg[limit]=10',
method: 'GET',
success: (data) => console.log(data.scenarioLogs)
});
fetch('https://hook.us1.make.com/${WEBHOOK_MAKE_PIPEDRIVE_OMIE}', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ "deal id": 74183, "id do orcamento": 30666 })
});
Replay run (UI)
Abrir execução em https://us1.make.com/115055/scenarios/2912018/logs/{runId} → botão Replay run no topo direito. Atenção: replay re-executa todos os módulos, incluindo [9] que chama /marcar-concluido no FlowTech (idempotente) e os módulos Omie (vão criar pedido duplicado).
Backups do blueprint
| Arquivo |
Estado que preserva |
<Downloads local>/blueprint_2912018_backup_2026-04-29.json (139 KB) |
Pré-Fase-1 (antes do suporte a PF). |
<Downloads local>/blueprint_2912018_backup_2026-07-07_preGuardFix.json (~142 KB) |
Antes do fix do guard 07/07 (guard 91 com expressão de array crua nos filtros — ainda quebrado em multi-endereço). |
Pra restaurar, ver snippet abaixo (rollback de emergência).
Backup pré-Fase-1 (detalhe)
Salvo em <Downloads local>/blueprint_2912018_backup_2026-04-29.json (139 KB, JSON).
Pra restaurar (rollback de emergência):
// Cole o conteúdo do arquivo na variável bp e:
$.ajax({
url: '/api/v2/scenarios/2912018',
method: 'PATCH',
contentType: 'application/json; charset=utf-8',
data: JSON.stringify({ blueprint: JSON.stringify(bp) })
});
Isso reverte pra antes do suporte a PF (mas mantém todos os bugs/limitações pré-existentes).