generalbots/bottemplates/crm/marketing.gbai/marketing.gbdialog/send-campaign.bas
Rodrigo Rodriguez (Pragmatismo) 037db5c381 feat: Major workspace reorganization and documentation update
- Add comprehensive documentation in botbook/ with 12 chapters
- Add botapp/ Tauri desktop application
- Add botdevice/ IoT device support
- Add botlib/ shared library crate
- Add botmodels/ Python ML models service
- Add botplugin/ browser extension
- Add botserver/ reorganized server code
- Add bottemplates/ bot templates
- Add bottest/ integration tests
- Add botui/ web UI server
- Add CI/CD workflows in .forgejo/workflows/
- Add AGENTS.md and PROD.md documentation
- Add dependency management scripts (DEPENDENCIES.sh/ps1)
- Remove legacy src/ structure and migrations
- Clean up temporary and backup files
2026-04-19 08:14:25 -03:00

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