Usar WhatsApp API para SaaS é uma estratégia poderosa para reduzir churn, engajar usuários e aumentar a retenção. Enquanto e-mails de onboarding têm taxas de abertura de 20-30%, mensagens no WhatsApp chegam a 95% de leitura. Para empresas SaaS no Brasil, integrar notificações pelo WhatsApp pode ser a diferença entre reter ou perder um cliente. Neste guia, você implementa um sistema completo de engajamento usando a ZAP API.
Casos de uso de WhatsApp para SaaS
- Onboarding: boas-vindas + primeiros passos
- Alerta de trial expirando: D-3, D-1 e D0
- Notificação de features: novas funcionalidades relevantes
- Alerta de inatividade: "Faz 7 dias que você não acessa..."
- Win-back: recuperar clientes que cancelaram
Alerta de trial expirando
// trial-alerts.js
require('dotenv').config();
const cron = require('node-cron');
const { Pool } = require('pg');
const axios = require('axios');
const pool = new Pool({ connectionString: process.env.DATABASE_URL });
const api = axios.create({
baseURL: 'https://zap-api.tech/v1',
headers: { Authorization: 'Bearer ' + process.env.ZAP_TOKEN }
});
const INST = process.env.ZAP_INSTANCE;
const MSGS = {
3: (nome) => `Olá ${nome}! Seu trial termina em 3 dias.\nAlguma dúvida? Responda aqui!`,
1: (nome) => `${nome}, seu trial termina amanhã!\nAssine: https://app.com/billing\nResponda ESTENDER para +3 dias.`,
0: (nome) => `${nome}, seu trial expirou hoje.\nAssine e retome: https://app.com/billing`
};
cron.schedule('0 9 * * *', async () => {
for (const dias of [3, 1, 0]) {
const dataAlvo = new Date();
dataAlvo.setDate(dataAlvo.getDate() + dias);
const dataStr = dataAlvo.toISOString().split('T')[0];
const { rows } = await pool.query(
`SELECT u.nome, u.phone FROM users u
JOIN subscriptions s ON s.user_id = u.id
WHERE DATE(s.trial_end) = $1 AND s.status = 'trial'
AND u.phone IS NOT NULL`, [dataStr]
);
for (const user of rows) {
await api.post(`/instances/${INST}/send`, {
phone: user.phone, type: 'text', body: MSGS[dias](user.nome)
});
await new Promise(r => setTimeout(r, 1500));
}
}
});
Monitor de inatividade e win-back
// health-monitor.js
cron.schedule('0 10 * * 1', async () => {
const { rows } = await pool.query(
`SELECT u.nome, u.phone, DATE_PART('day', NOW() - u.last_login) as dias
FROM users u JOIN subscriptions s ON s.user_id = u.id
WHERE s.status = 'active' AND u.last_login < NOW() - INTERVAL '7 days'
AND u.phone IS NOT NULL`
);
for (const user of rows) {
await api.post(`/instances/${INST}/send`, {
phone: user.phone, type: 'text',
body: `Olá ${user.nome}! Faz ${Math.round(user.dias)} dias desde seu último acesso.\nAcesse: https://app.com\nPrecisa de ajuda? Responda aqui.`
});
await new Promise(r => setTimeout(r, 2000));
}
});
Resultados esperados
- Aumento de 20-35% na conversão trial para pagante
- Redução de 15-25% no churn mensal
- Recuperação de 8-15% dos cancelados via win-back
A ZAP API custa R$49/mês por instância, com 7 dias grátis. A partir da terceira, R$29/mês.
FAQ
- Preciso de número dedicado?
Recomendamos sim, para separar notificações de atendimento. - Funciona para SaaS B2B?
Sim. Decisores B2B no Brasil usam WhatsApp ativamente. - Como coletar o telefone sem fricção?
Campo opcional no cadastro: "Quer alertas no WhatsApp?". Taxa de preenchimento ~65%. - Posso segmentar por plano?
Sim. Sua lógica de segmentação fica no backend. Veja casos de uso.
Crie sua conta grátis e comece a engajar seus usuários.