bottemplates/crm/marketing.gbai/marketing.gbdialog/send-campaign.bas

59 lines
2 KiB
QBasic

PARAM campaign_id AS STRING LIKE "uuid" DESCRIPTION "ID da Campanha" OPTIONAL
PARAM allow_over_budget AS BOOLEAN LIKE FALSE DESCRIPTION "Permitir envio mesmo se ultrapassar o orçamento do canal?" OPTIONAL
DESCRIPTION "Confirma e inicia o disparo (envio) imediato de uma campanha."
IF NOT campaign_id OR campaign_id = "uuid" THEN
TALK "Qual campanha você deseja enviar? (Diga o nome)"
HEAR query AS STRING
camps = GET "/api/marketing/campaigns?search=" + query + "&limit=5"
IF UBOUND(camps) = 0 THEN
TALK "Não encontrei nenhuma campanha com o termo '" + query + "'."
RETURN
END IF
IF UBOUND(camps) = 1 THEN
campaign_id = FIRST(camps).id
ELSE
TALK "Encontrei várias campanhas. Qual delas?"
FOR EACH c IN camps
TALK "- **" + c.name + "** (" + c.status + ")"
NEXT c
RETURN
END IF
END IF
camp = GET "/api/marketing/campaigns/" + campaign_id
IF NOT camp THEN
TALK "Campanha não encontrada: " + campaign_id
RETURN
END IF
IF camp.status = "sent" OR camp.status = "completed" THEN
TALK "A campanha '" + camp.name + "' já foi enviada."
RETURN
END IF
IF NOT camp.list_id THEN
TALK "Esta campanha não tem uma lista de contatos vinculada. Não é possível enviar."
RETURN
END IF
list_info = GET "/api/marketing/lists/" + camp.list_id
TALK "🔍 **Análise Pré-Envio:**"
TALK "• Campanha: " + camp.name
TALK "• Canal: " + UCASE(camp.channel)
TALK "• Segmentação/Lista: " + list_info.name + " (" + list_info.contact_count + " contatos)"
TALK "Deseja realmente iniciar o envio AGORA para " + list_info.contact_count + " pessoas?"
HEAR confirm AS BOOLEAN
IF confirm THEN
POST "/api/marketing/campaigns/" + campaign_id + "/send"
TALK "🚀 **Envio Iniciado!**"
TALK "As automações do " + UCASE(camp.channel) + " foram engatilhadas."
TALK "Você pode acompanhar as métricas em 'list-campaigns' depois de alguns minutos."
ELSE
TALK "Envio cancelado. A campanha continua no status '" + camp.status + "'."
END IF
RETURN camp_id