What you're delivering: a private copy of the Miracle CRM for one flooring company — with its own website (CRM), its own text number, and an AI assistant that calls their leads, books estimates, follows up, and closes deals. Budget about 2–3 hours the first time; under an hour once you've done a few.
0Accounts the customer must create (send this first)
Before your setup call, have the customer open these accounts in their own name / business card (this keeps billing and legal responsibility on them):
- Twilio — for text messages & the phone line (twilio.com)
- Retell AI — the AI voice assistant (retellai.com)
- A Gmail / Google business account — for sending estimates & email follow-ups
- A Google Business Profile — for the review link
⚖️ Compliance: the customer's accounts = the customer's responsibility. Put in the contract that they may only call/text their own inbound leads who asked to be contacted — never purchased or cold lists. Keep auto-call OFF until they opt in.
1Provision the CRM instance (your side)
- Spin up a small server (e.g. a $6/mo DigitalOcean droplet).
- Point a domain/subdomain at it (e.g.
crm.theircompany.com).
- Copy the CRM app to the server and create their
.env file (see step 3 for the Twilio keys that go here).
- Start it with PM2 and confirm the login page loads.
- Create their admin login and set a strong password.
2Company info in the CRM
Log in as admin → Settings and fill in:
- Company name, owner name, phone, email, address, license #
- Logo (for PDFs)
- Google Review link (Settings → Google Review Link)
- Payment links (SwipeSimple / Hearth) if they use them
3Twilio — text number & permissions
- In Twilio, buy (or use their existing) phone number.
- Copy their Account SID + Auth Token (console home) into their CRM
.env: TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN, TWILIO_PHONE. Restart the app.
- Voice → Geographic Permissions → make sure United States & Canada is enabled.
4Connect the number to Retell (SIP trunk)
This lets the AI call out from their own number. In Twilio → Elastic SIP Trunking:
- Create a Trunk (name it "Retell").
- Termination tab: set a Termination SIP URI (e.g.
companyname.pstn.twilio.com).
- Create a Credential List (username + a strong password — write it down).
- Add an IP Access Control List with Retell's SBC:
18.98.16.120/30. Attach both to the trunk. Save.
- Origination tab: add Origination URI
sip:sip.retellai.com (priority 10, weight 10). Save.
- Numbers tab: add their phone number to the trunk.
Then in Retell → Phone Numbers → + → Connect via SIP trunking, enter: the number, the Termination URI, the SIP username & password, transport TCP. Save.
🔑 Retell requires KYC identity verification (a driver's license photo) before outbound calls work. Have the customer do this early — bright light, no glare, all 4 corners visible.
5Build the two AI agents in Retell
Use Single-Prompt agents (not Conversation Flow). Easiest: build the first, then duplicate it for the second.
Agent A — "Lead Intake" (books the estimate)
- Paste the intake script from CRM → Settings → AI Phone Assistant.
- Add a Custom Function named
book_appointment (params: appointment_date, appointment_time, notes) pointing at the CRM's Book URL. Leave "Payload: args only" OFF.
- Add an End Call function.
- Webhook Settings → paste the CRM's Webhook URL.
- Welcome Message → AI speaks first, dynamic.
Agent B — "Follow-Up / Closer" (3-day sales call)
- Duplicate Agent A, rename to "Follow-Up".
- Replace the prompt with the Follow-up script from CRM Settings. Keep End Call; remove
book_appointment.
- Paste the same Webhook URL.
6Paste keys into the CRM & set the rules
CRM → Settings → 🤖 AI Phone Assistant:
- Retell API Key + Agent ID (intake) + from number
- Calling hours (e.g. 8 AM – 8 PM)
- Follow-up section: enable, closer Agent ID, days = 3, team phone
- Keep Auto-call and SMS auto-call OFF for the first week (button-first)
7Test before go-live
- Add a test lead with the owner's own phone.
- Press 🤖 AI Call → answer → let it book an appointment.
- Confirm it lands on the calendar (correct date & time) and the transcript logs on the lead.
- Check the purple "booked by AI" banner appears on the dashboard.
8Go-live checklist
- Owner has watched at least one real AI call and trusts it
- Calling hours & scripts reviewed with the owner
- Flip Auto-call new leads → Yes
- Flip SMS auto-call → Yes (calls back customers who text to schedule)
- Confirm the retry ladder (4h → 24h → 24h) & the amber "needs your decision" banner work
9Pricing & contract (suggested)
| Item | Suggested |
| Setup (one-time) | $500 – $1,000 |
| Monthly | $400 – $700 |
| Term | Month-to-month, 30-day notice |
💡 Never sell to a flooring company in your own metro. Sell outside your market. Demo by calling the owner's phone live with the AI — it sells itself.
O que você está entregando: uma cópia privada do Miracle CRM para uma empresa de piso — com o próprio site (CRM), o próprio número de SMS e um assistente de IA que liga para os leads, agenda orçamentos, faz follow-up e fecha negócios. Reserve cerca de 2 a 3 horas na primeira vez; menos de uma hora depois de algumas.
0Contas que o cliente precisa criar (envie isto primeiro)
Antes da sua reunião de configuração, peça ao cliente para abrir estas contas no nome/CNPJ dele (assim a cobrança e a responsabilidade legal ficam com ele):
- Twilio — para SMS e a linha telefônica (twilio.com)
- Retell AI — o assistente de voz com IA (retellai.com)
- Uma conta Gmail / Google comercial — para enviar orçamentos e e-mails
- Um Perfil da Empresa no Google — para o link de avaliação
⚖️ Conformidade: as contas são do cliente = responsabilidade do cliente. Coloque no contrato que ele só pode ligar/enviar SMS para os próprios leads que pediram contato — nunca listas compradas ou frias. Mantenha a ligação automática DESLIGADA até ele autorizar.
1Preparar a instância do CRM (seu lado)
- Suba um servidor pequeno (ex.: droplet DigitalOcean de US$6/mês).
- Aponte um domínio/subdomínio para ele (ex.:
crm.empresadocliente.com).
- Copie o app do CRM para o servidor e crie o
.env dele (as chaves do Twilio entram aqui — veja passo 3).
- Inicie com o PM2 e confirme que a tela de login abre.
- Crie o login de administrador dele e defina uma senha forte.
2Dados da empresa no CRM
Entre como admin → Configurações e preencha:
- Nome da empresa, nome do dono, telefone, e-mail, endereço, nº da licença
- Logo (para os PDFs)
- Link de avaliação do Google
- Links de pagamento (SwipeSimple / Hearth), se usarem
3Twilio — número de SMS & permissões
- No Twilio, compre (ou use o número existente) do cliente.
- Copie o Account SID + Auth Token (tela inicial) para o
.env: TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN, TWILIO_PHONE. Reinicie o app.
- Voice → Geographic Permissions → deixe United States & Canada ativado.
4Conectar o número ao Retell (tronco SIP)
Isso permite que a IA ligue a partir do número do próprio cliente. No Twilio → Elastic SIP Trunking:
- Crie um Trunk (nome "Retell").
- Aba Termination: defina uma Termination SIP URI (ex.:
empresa.pstn.twilio.com).
- Crie uma Credential List (usuário + senha forte — anote).
- Adicione uma IP Access Control List com o SBC do Retell:
18.98.16.120/30. Anexe as duas ao trunk. Salve.
- Aba Origination: adicione a URI
sip:sip.retellai.com (priority 10, weight 10). Salve.
- Aba Numbers: adicione o número ao trunk.
Depois, no Retell → Phone Numbers → + → Connect via SIP trunking, informe: o número, a Termination URI, o usuário & senha SIP, transporte TCP. Salve.
🔑 O Retell exige verificação de identidade (KYC) (foto da CNH/ID) antes de permitir ligações. Faça isso cedo — luz boa, sem reflexo, os 4 cantos visíveis.
5Criar os dois agentes de IA no Retell
Use agentes Single-Prompt (não Conversation Flow). Mais fácil: crie o primeiro e depois duplique para o segundo.
Agente A — "Intake" (agenda o orçamento)
- Cole o script de intake de CRM → Configurações → Assistente de Telefone IA.
- Adicione uma Custom Function chamada
book_appointment (parâmetros: appointment_date, appointment_time, notes) apontando para a Book URL do CRM. Deixe "Payload: args only" DESLIGADO.
- Adicione a função End Call.
- Webhook Settings → cole a Webhook URL do CRM.
- Welcome Message → AI speaks first, dinâmico.
Agente B — "Follow-Up / Fechamento" (ligação de 3 dias)
- Duplique o Agente A e renomeie para "Follow-Up".
- Troque o prompt pelo script de follow-up das Configurações. Mantenha o End Call; remova o
book_appointment.
- Cole a mesma Webhook URL.
6Colar as chaves no CRM & definir as regras
CRM → Configurações → 🤖 Assistente de Telefone IA:
- Retell API Key + Agent ID (intake) + número de origem
- Horário de ligações (ex.: 8h – 20h)
- Seção de follow-up: ativar, Agent ID do fechador, dias = 3, telefone da equipe
- Mantenha Auto-call e SMS auto-call DESLIGADOS na primeira semana (só botão)
7Testar antes de ir ao ar
- Crie um lead de teste com o telefone do próprio dono.
- Aperte 🤖 AI Call → atenda → deixe agendar.
- Confirme que aparece no calendário (data & hora certas) e a transcrição fica no lead.
- Veja se o banner roxo "agendado pela IA" aparece no painel.
8Checklist para ir ao ar
- O dono já ouviu pelo menos uma ligação real da IA e confia
- Horários e scripts revisados com o dono
- Ative Auto-call novos leads → Sim
- Ative SMS auto-call → Sim (liga de volta quem manda SMS pedindo agendar)
- Confirme a escada de tentativas (4h → 24h → 24h) & o banner âmbar "precisa da sua decisão"
9Preços & contrato (sugestão)
| Item | Sugerido |
| Setup (único) | US$500 – US$1.000 |
| Mensal | US$400 – US$700 |
| Prazo | Mês a mês, aviso de 30 dias |
💡 Nunca venda para uma empresa de piso da sua própria região. Venda fora do seu mercado. Faça a demo ligando ao vivo para o telefone do dono com a IA — ela se vende sozinha.