106 lines
3.2 KiB
QBasic
106 lines
3.2 KiB
QBasic
PARAM title AS STRING LIKE "Contrato Empresa ABC" DESCRIPTION "Título do deal ou oportunidade"
|
|
PARAM contact_email AS EMAIL LIKE "joao@empresa.com" DESCRIPTION "Email do contato principal"
|
|
PARAM contact_name AS STRING LIKE "João Silva" DESCRIPTION "Nome do contato" OPTIONAL
|
|
PARAM company AS STRING LIKE "Empresa ABC Ltda" DESCRIPTION "Nome da empresa/conta" OPTIONAL
|
|
PARAM value AS MONEY LIKE 50000 DESCRIPTION "Valor estimado do deal"
|
|
PARAM stage AS STRING LIKE "new" DESCRIPTION "Estágio inicial: new, qualified, proposal, negotiation" OPTIONAL
|
|
PARAM source AS STRING LIKE "WHATSAPP" DESCRIPTION "Origem: WHATSAPP, EMAIL, CALL, WEBSITE, REFERAL, PARTNER, CHAT" OPTIONAL
|
|
PARAM close_date AS DATE LIKE "2026-06-30" DESCRIPTION "Data prevista de fechamento" OPTIONAL
|
|
PARAM notes AS STRING LIKE "Conheceu na feira" DESCRIPTION "Observações sobre o deal" OPTIONAL
|
|
|
|
DESCRIPTION "Criar um novo deal no pipeline de vendas. Registra o negócio com valor, estágio, contato e empresa."
|
|
|
|
IF NOT stage THEN
|
|
stage = "new"
|
|
END IF
|
|
|
|
IF NOT source THEN
|
|
source = "CHAT"
|
|
END IF
|
|
|
|
IF NOT close_date THEN
|
|
close_date = DATEADD(TODAY(), 30, "day")
|
|
END IF
|
|
|
|
' Determine probability based on stage
|
|
probability = 10
|
|
IF stage = "qualified" THEN
|
|
probability = 30
|
|
ELSE IF stage = "proposal" THEN
|
|
probability = 50
|
|
ELSE IF stage = "negotiation" THEN
|
|
probability = 70
|
|
END IF
|
|
|
|
' Check if contact exists, create if not
|
|
contact_id = ""
|
|
IF contact_email THEN
|
|
existing = GET "/api/crm/contacts?search=" + contact_email
|
|
IF UBOUND(existing) > 0 THEN
|
|
contact_id = FIRST(existing).id
|
|
TALK "Contato encontrado: " + FIRST(existing).first_name + " " + FIRST(existing).last_name
|
|
ELSE
|
|
' Create contact
|
|
IF NOT contact_name THEN
|
|
contact_name = "Contato"
|
|
END IF
|
|
parts = SPLIT(contact_name, " ")
|
|
first_name = FIRST(parts)
|
|
last_name = LAST(parts)
|
|
|
|
new_contact = POST "/api/crm/contacts", #{
|
|
first_name: first_name,
|
|
last_name: last_name,
|
|
email: contact_email,
|
|
company: company,
|
|
source: source
|
|
}
|
|
contact_id = new_contact.id
|
|
TALK "Novo contato criado: " + contact_name
|
|
END IF
|
|
END IF
|
|
|
|
' Check if account exists, create if not
|
|
account_id = ""
|
|
IF company THEN
|
|
existing_acc = GET "/api/crm/accounts?search=" + company
|
|
IF UBOUND(existing_acc) > 0 THEN
|
|
account_id = FIRST(existing_acc).id
|
|
ELSE
|
|
new_account = POST "/api/crm/accounts", #{
|
|
name: company
|
|
}
|
|
account_id = new_account.id
|
|
TALK "Nova conta criada: " + company
|
|
END IF
|
|
END IF
|
|
|
|
' Create the deal
|
|
deal = POST "/api/crm/deals", #{
|
|
title: title,
|
|
value: value,
|
|
stage: stage,
|
|
probability: probability,
|
|
source: source,
|
|
expected_close_date: close_date,
|
|
contact_id: contact_id,
|
|
account_id: account_id,
|
|
notes: notes
|
|
}
|
|
|
|
TALK "✅ **Deal criado com sucesso!**"
|
|
TALK ""
|
|
TALK "**" + title + "**"
|
|
TALK "💰 Valor: R$ " + FORMAT(value, "#,##0")
|
|
TALK "📊 Estágio: " + stage + " (" + probability + "% probabilidade)"
|
|
TALK "📅 Previsão de fechamento: " + close_date
|
|
|
|
IF company THEN
|
|
TALK "🏢 Empresa: " + company
|
|
END IF
|
|
|
|
IF contact_email THEN
|
|
TALK "👤 Contato: " + contact_email
|
|
END IF
|
|
|
|
RETURN deal.id
|