# Pedro Henrique Quadro > Construo aplicativos, sistemas e SaaS, painéis, agentes de IA, automação e integrações, do banco de dados à tela, com o sistema rodando em produção. Engenheiro de software e IA de ponta a ponta. Brasil, horário de Brasília. Atendimento remoto. Idiomas: pt-BR, en. Aceita novos projetos. A disponibilidade e a data de início são combinadas na primeira conversa. Atualizado em 2026-10-10. Site: https://pedroquadro.com ## Serviços - [Aplicativos para iPhone e Android](https://pedroquadro.com/servicos/aplicativos): Construo o aplicativo para iPhone e Android com Flutter, um código só para as duas lojas, e o servidor que ele precisa: login, pagamento, notificação e API. Já publiquei um app de treino na App Store e no Google Play. - [Sistemas, CRM e SaaS sob medida](https://pedroquadro.com/servicos/sistemas-e-saas): Construo CRM, portal de clientes, sistema interno e SaaS, do banco de dados à tela. Quando o produto atende várias empresas, cada uma tem os dados isolados no próprio banco, com segurança por linha no Postgres. Fiz um CRM assim sozinho, e a análise de cada lead ficou 70% mais rápida nos primeiros 60 dias. - [Painéis e dados](https://pedroquadro.com/servicos/paineis-e-dados): Monto painéis que juntam o seu banco de dados, planilhas, CRM e anúncios em um lugar só, atualizam sozinhos e avisam quando um número foge do normal. Comecei a carreira em dados e BI, com dashboards e modelos de previsão. - [Automação e integrações](https://pedroquadro.com/servicos/automacao-e-integracoes): Ligo os sistemas da empresa para o trabalho passar de um para o outro sem ninguém digitar: a venda do site vira pedido no ERP, a cobrança e a mensagem saem sozinhas. As integrações não duplicam (idempotência, filas e reprocessamento) e avisam quando um fluxo para. O piloto costuma entrar em produção em 2 a 4 semanas. - [Atendimento no WhatsApp com IA](https://pedroquadro.com/servicos/atendimento-whatsapp-com-ia): Construo atendentes de IA para o WhatsApp da sua empresa, na API oficial da Meta. Eles respondem clientes e leads a qualquer hora, usam os dados do seu CRM e chamam uma pessoa quando o assunto pede. O piloto costuma entrar em produção em 2 a 4 semanas. - [Vendas e CRM com IA](https://pedroquadro.com/servicos/vendas-e-crm-com-ia): Monto o caminho do lead até a venda: captação, qualificação por IA no WhatsApp, entrada no CRM e acompanhamento do time comercial. Quando as ferramentas prontas não servem, construo o CRM sob medida, com os dados de cada cliente isolados. - [Agentes de IA em produção](https://pedroquadro.com/servicos/agentes-de-ia-em-producao): Coloco agentes de IA para trabalhar em processos reais da empresa: triagem, atendimento, análise de dados e rotinas internas. Uso Claude e outros modelos, n8n e código próprio, com registro de cada decisão, controle de custo e passagem para uma pessoa desde o primeiro dia. - [Automação e IA para escritórios de advocacia](https://pedroquadro.com/servicos/automacao-para-advocacia): Construo sistemas sob medida para escritório de advocacia: o sistema lê as intimações do DJEN pelo número da OAB, propõe os prazos para o advogado aprovar, avisa no WhatsApp e atende o cliente com um assistente virtual. O advogado continua decidindo e revisando tudo. ## Casos - [CRM sob medida para uma startup, feito sozinho e em produção](https://pedroquadro.com/casos/crm-multi-tenant): Startup, operação comercial. 70% menos tempo de análise de leads, medido nos primeiros 60 dias. ## Artigos - [Blog](https://pedroquadro.com/blog) - [CRM pronto ou CRM sob medida com WhatsApp: quando vale construir?](https://pedroquadro.com/blog/crm-pronto-ou-sob-medida-whatsapp): Na maioria dos casos, CRM pronto mais uma integração resolve. Os 5 casos em que construir compensa, com preço por usuário do Pipedrive e do Kommo. (2026-10-10) - [Quanto custa um agente de IA de pré-vendas no WhatsApp em 2026?](https://pedroquadro.com/blog/quanto-custa-agente-ia-pre-vendas-whatsapp): Implantação a partir de R$ 7 mil e manutenção a partir de R$ 1.500 por mês, mais tarifa da Meta e modelo de IA. A conta em 4 partes, com tabela por volume. (2026-10-10) - [Por que a página com 3D cai de 60 para 37 fps no notebook?](https://pedroquadro.com/blog/threejs-canvastexture-fps-willreadfrequently): No meu site, tela animada em CanvasTexture derrubou o Three.js de 60 para 37 fps na Intel UHD. willReadFrequently resolveu, e a medição exigiu um controle. (2026-10-10) - [Intimações do DJEN pela OAB, três armadilhas que dão resultado errado sem avisar](https://pedroquadro.com/blog/djen-intimacoes-por-oab-armadilhas): A consulta pública do DJEN devolve lista vazia com sucesso, perde publicações na busca por nome e tem total que não fecha. O que conferi em 2026-10-09. (2026-10-09) - [Por que a IA inventa jurisprudência com cara de real e como impedir isso numa minuta](https://pedroquadro.com/blog/ia-jurisprudencia-inventada-como-impedir): IA pode citar julgado que não existe e quem responde é o advogado. O que tribunais decidiram, o que a OAB recomenda e as quatro travas que uso. (2026-10-09) - [Dá para automatizar a busca no Jusbrasil? O que os termos dizem e onde buscar na fonte oficial](https://pedroquadro.com/blog/jusbrasil-automacao-fontes-oficiais): Os termos do Jusbrasil vedam acesso automatizado, scrapers e API não autorizada. Onde buscar jurisprudência e publicações na fonte oficial. (2026-10-09) - [O que a OAB recomenda sobre atendimento com IA e como isso vira desenho de sistema](https://pedroquadro.com/blog/oab-atendimento-com-ia-recomendacoes): A recomendação do Conselho Federal pede que o chatbot diga que é máquina e que o cliente possa falar com uma pessoa. Como isso vira três níveis de resposta. (2026-10-09) - [API oficial ou não oficial do WhatsApp para atendimento com IA: o que muda?](https://pedroquadro.com/blog/whatsapp-api-oficial-ou-nao-oficial): Para atender clientes de uma empresa com IA, uso a API oficial. A não oficial não tem tarifa, mas as regras do WhatsApp a proíbem e a conta pode ser suspensa. (2026-10-09) - [O que o WhatsApp Business passou a cobrar em outubro de 2026?](https://pedroquadro.com/blog/whatsapp-business-cobranca-2026): Desde 1º de outubro a Meta cobra as respostas dentro da janela de 24 horas, inclusive as de agente de IA: R$ 0,035 por mensagem após as 1.000 primeiras do mês. (2026-10-09) - [Android vai bloquear app fora da Play Store? A verificação de desenvolvedor de 2026 e o PWA](https://pedroquadro.com/blog/android-verificacao-desenvolvedor-2026-apk-pwa): Desde 30/09/2026 o Android exige desenvolvedor verificado em lojas participantes no Brasil. O que muda para sideload e adb, e o que não está dito sobre PWA. (2026-10-08) - [O que significa o erro 131049 do WhatsApp quando o template de marketing não é entregue?](https://pedroquadro.com/blog/whatsapp-erro-131049-template-marketing): O erro 131049 é o limite da Meta para mensagens de marketing por usuário. O que a documentação manda fazer, por que reenviar em loop piora e como contornar. (2026-09-28) - [Como testar um chatbot com LLM sem a prova mentir?](https://pedroquadro.com/blog/testar-chatbot-llm-prova-que-nao-mente): Teste de chatbot passa verde lendo o rodapé em vez da resposta. Como medir a bolha certa, escolher a pergunta e comparar só a parte que não varia. (2026-09-22) - [Três consultas SQL que perdem linha ou rodam por linha sem dar erro (LIMIT, NOT EXISTS, função VOLATILE)](https://pedroquadro.com/blog/sql-consultas-que-perdem-linha-sem-erro): LIMIT antes do filtro, NOT EXISTS em INSERT SELECT e função VOLATILE no WHERE dão resultado errado ou lento sem erro. Testado no Postgres 16, com a correção. (2026-09-15) - [Por que o lead fica sem resposta no Chatwoot com n8n? O webhook que nunca virou execução](https://pedroquadro.com/blog/chatwoot-n8n-lead-sem-resposta-webhook): Quando a conversa termina na fala do cliente, o webhook do Chatwoot pode ter estourado o prazo de 5 segundos no n8n. Como achar os casos e responder na hora. (2026-09-14) - [Por que o Supabase devolve só 1.000 linhas e não avisa? (max rows do PostgREST)](https://pedroquadro.com/blog/supabase-mil-linhas-max-rows): O Supabase corta toda resposta da API em 1.000 linhas por padrão, sem erro. Como o limite max rows engana uma soma na tela e como somar no banco. (2026-09-10) - [Por que o primeiro pagamento real achou bugs que quase mil testes não viram?](https://pedroquadro.com/blog/primeiro-pagamento-real-bugs-que-testes-nao-viram): 997 testes verdes e o plano não subiu depois do primeiro pagamento. Quatro bugs de webhook, tempo, data e coluna, e por que os testes copiavam o erro do código. (2026-09-08) - [Servidor em UTC e navegador no Brasil: por que a data aparece errada por um dia?](https://pedroquadro.com/blog/data-um-dia-errado-servidor-utc-hidratacao): Data renderizada no servidor em UTC e no navegador em UTC-3 diverge à noite e gera erro de hidratação do React. Entenda a causa e como fixar o fuso. (2026-09-02) - [Por que o agente de IA esquece a regra do prompt no meio da conversa?](https://pedroquadro.com/blog/agente-ia-esquece-regra-prompt-conversa-longa): A regra no prompt de sistema perde força conforme a conversa cresce. O que a documentação diz, o que medi num assistente de chat e como repetir o lembrete. (2026-09-01) - [Conversions API conectada, mas a Meta pede "Connect your CRM": o que falta?](https://pedroquadro.com/blog/meta-conversions-api-crm-connect-your-crm): Receber eventos pela Conversions API não cadastra a integração de CRM. O que a Meta exige em custom_data e action_source, e o passo seguinte, o funil. (2026-08-27) - [n8n Community: o que a licença grátis libera, e posso vender fluxo para cliente?](https://pedroquadro.com/blog/n8n-community-licenca-gratis-vender-fluxo-cliente): A chave grátis libera pastas, debug no editor e dados de execução. Cobrar para construir fluxos para clientes é permitido; hospedar n8n como serviço, não. (2026-08-25) - [Por que o iPhone dá zoom na página quando toco num campo do formulário?](https://pedroquadro.com/blog/zoom-ios-campo-formulario-16px): O Safari do iPhone amplia a página ao focar um campo com fonte menor que 16px. Como confirmar, corrigir com uma regra de CSS e por que não desligar o zoom. (2026-08-25) - [Por que o webhook do RD Station chega sem funnel_stage, e o lead do formulário da Meta some?](https://pedroquadro.com/blog/rd-station-webhook-lead-sem-etapa-funil): O webhook do RD Station Marketing traz a última conversão do instante, às vezes sem etapa do funil. E o formulário novo da Meta pode descartar o lead calado. (2026-08-19) - [Por que reenviar uma requisição de criação com upsert faz o status voltar atrás?](https://pedroquadro.com/blog/upsert-reenvio-regride-status): Upsert que sobrescreve a linha inteira não é idempotente: o reenvio desfaz o que já avançou. Como usar ON CONFLICT DO NOTHING e provar que nada regrediu. (2026-08-18) - [Como reprocessar em massa sem duplicar? O que é seguro repetir (retry e idempotência)](https://pedroquadro.com/blog/retry-em-massa-sem-duplicar): Ligar retry em toda chamada externa cria registros duplicados. Classifique antes: só leitura e atualização com id são seguras. Exemplo em fluxos n8n. (2026-08-17) - [Como dar memória a agentes de IA que funcione com qualquer modelo?](https://pedroquadro.com/blog/memoria-para-agentes-de-ia-qualquer-modelo): Guardar a memória em arquivos Markdown versionados no git, com um arquivo canônico lido por Claude Code, opencode e outros. Como montei e onde quebrou. (2026-08-16) - [RLS no Supabase sem GRANT: por que a tela fica vazia e não dá erro?](https://pedroquadro.com/blog/rls-supabase-sem-grant-tela-vazia): Sem GRANT na tabela, a política de RLS nem chega a rodar. Como o Supabase e o Postgres tratam isso, por que a tela abre vazia e como conferir em uma consulta. (2026-08-12) - [Por que a conversão offline do Google Ads não aparece? CONVERSION_PRECEDES_EVENT e EXPIRED_EVENT](https://pedroquadro.com/blog/google-ads-conversao-offline-zerada-erros): Conversão offline do Google Ads zerada sem erro na tela: CONVERSION_PRECEDES_EVENT, EXPIRED_EVENT e o partial_failure_error que fica dentro da resposta. (2026-08-09) - [Refresh token rotativo: como detectar quando um token antigo é reutilizado?](https://pedroquadro.com/blog/refresh-token-rotativo-deteccao-de-reuso): Rotacionar o refresh token só protege se o servidor guardar a família de tokens e derrubá-la no reuso. E cinco jeitos de essa defesa deslogar usuário inocente. (2026-08-02) - [Rate limit atrás de proxy: por que bloqueou todo mundo de uma vez?](https://pedroquadro.com/blog/rate-limit-atras-de-proxy-bloqueou-todo-mundo): Sem trust proxy, o Express vê o IP do proxy em toda requisição e o rate limit vira um teto único. Como declarar o número de saltos e por que não usar true. (2026-07-29) - [Como mover um negócio de funil pela API do Bitrix24 e extrair a conversa do Open Lines?](https://pedroquadro.com/blog/bitrix24-api-mover-funil-conversa-open-lines): crm.deal.update não troca o funil do Bitrix24 e responde sucesso. Use crm.item.update. E a conversa do Open Lines só aparece com ACTIVE_ONLY=N. (2026-07-21) - [Por que o contato do WhatsApp não bate com o CRM? O caso do nono dígito](https://pedroquadro.com/blog/whatsapp-nono-digito-contato-nao-bate): A Meta pode devolver o número do cliente sem o 9 do celular. O mesmo contato passa a existir duas vezes e a busca no CRM falha. Como cruzar sem errar. (2026-07-06) - [Por que a Meta entrega o mesmo evento duas vezes e o seu sistema responde em dobro?](https://pedroquadro.com/blog/webhook-duplicado-meta-resposta-em-dobro): O webhook da Meta não promete entrega única: repete quando falha e a documentação manda deduplicar. Como evitar a resposta em dobro, com o exemplo no n8n. (2026-07-04) - [Dá para publicar Reels e Story no Instagram pela API sem App Review?](https://pedroquadro.com/blog/instagram-api-publicar-reels-story-sem-app-review): Sim, se o app serve só o seu próprio negócio e usa Standard Access. O limite é 100 posts por 24 horas por conta. Vários clientes exigem Advanced Access. (2026-06-29) - [Make: por que o gatilho de Facebook Lead Ads dispara para todos os formulários da página?](https://pedroquadro.com/blog/make-facebook-lead-ads-todos-formularios): O webhook de leads da Meta é por página. Dois cenários da mesma página recebem leads um do outro. Filtre pelo formId logo depois do gatilho. (2026-06-21) - [Por que a API do WhatsApp responde 200 com wamid e o PDF ou a mídia não chega?](https://pedroquadro.com/blog/whatsapp-api-midia-nao-chega-200-wamid): A resposta 200 com wamid só confirma que a Meta aceitou o pedido. Com mídia por link, o download falha depois e calado. O que conferir e como corrigir. (2026-06-14) ## Sobre e contato - [Página inicial](https://pedroquadro.com) - [Fatos sobre Pedro Henrique Quadro](https://pedroquadro.com/fatos): quem atende, para quem, setores, prazos típicos e como contratar - [LinkedIn](https://www.linkedin.com/in/pedrohenriquequadro) - [GitHub](https://github.com/PedroHenrique0713) - [WhatsApp](https://wa.me/5531989206776) - E-mail: pluspedrohenrique@gmail.com ## API pública Somente leitura, JSON, CORS aberto, sem dado de cliente. Aceita ?lang=pt|en. - [/api/v1/perfil](https://pedroquadro.com/api/v1/perfil): Quem é, onde atua, idiomas, serviços e contato - [/api/v1/servicos](https://pedroquadro.com/api/v1/servicos): Serviços, para quem são e prazo típico - [/api/v1/casos](https://pedroquadro.com/api/v1/casos): Casos anonimizados, com resultado - [/api/v1/disponibilidade](https://pedroquadro.com/api/v1/disponibilidade): Se está aceitando projeto agora - [/api/v1/encaixe?setor=&necessidade=](https://pedroquadro.com/api/v1/encaixe?setor=&necessidade=): Serviços e casos de um setor (parâmetros opcionais) - [/api/v1/openapi.json](https://pedroquadro.com/api/v1/openapi.json): Documentação OpenAPI 3.1 da API ## English I build apps, systems and SaaS, dashboards, AI agents, automation and integrations, from the database to the screen, with the system running in production. - [Home page](https://pedroquadro.com/en) - [Facts about Pedro Henrique Quadro](https://pedroquadro.com/en/facts): who he serves, sectors, typical timelines and how to hire - [Apps for iPhone and Android](https://pedroquadro.com/en/services/apps): I build the app for iPhone and Android with Flutter, one codebase for both stores, and the server behind it: login, payments, notifications and an API. I have already published a workout app on the App Store and Google Play. - [Custom systems, CRM and SaaS](https://pedroquadro.com/en/services/systems-and-saas): I build CRMs, customer portals, internal systems and SaaS, from the database to the screen. When the product serves several companies, each one has its data isolated in the database itself, with row-level security in Postgres. I built a CRM like that on my own, and analyzing each lead became 70% faster over the first 60 days. - [Dashboards and data](https://pedroquadro.com/en/services/dashboards-and-data): I build dashboards that bring your database, spreadsheets, CRM and ads into one place, update on their own and warn you when a number drifts from normal. I started my career in data and BI, with dashboards and forecasting models. - [Automation and integrations](https://pedroquadro.com/en/services/automation-and-integrations): I connect the company's systems so work passes from one to the next without anyone typing: the sale on the website becomes an order in the ERP, and billing and messages go out on their own. The integrations do not duplicate (idempotency, queues and reprocessing) and warn you when a flow stops. The pilot usually goes live in 2 to 4 weeks. - [AI customer support on WhatsApp](https://pedroquadro.com/en/services/ai-whatsapp-support): I build AI support agents for your company's WhatsApp, on Meta's official API. They answer customers and leads at any hour, use the data in your CRM and hand over to a person when the topic calls for it. The pilot usually goes live in 2 to 4 weeks. - [Sales and CRM with AI](https://pedroquadro.com/en/services/ai-sales-crm): I build the path from lead to sale: capture, AI qualification on WhatsApp, entry into the CRM and follow-up by the sales team. When off-the-shelf tools do not fit, I build the CRM to order, with each customer's data kept apart. - [AI agents in production](https://pedroquadro.com/en/services/production-ai-agents): I put AI agents to work on real company processes: triage, support, data analysis and internal routines. I use Claude and other models, n8n and custom code, with a record of every decision, cost control and handover to a person from day one. - [Automation and AI for law firms](https://pedroquadro.com/en/services/legal-automation): I build custom systems for law firms: the system reads court notices from the DJEN by bar number, proposes deadlines for the lawyer to approve, alerts on WhatsApp and answers clients through a virtual assistant. The lawyer keeps deciding and reviewing everything. - [A custom CRM for a startup, built solo and running in production](https://pedroquadro.com/en/cases/multi-tenant-crm): Startup, sales operations - API: pass ?lang=en to any endpoint, for example https://pedroquadro.com/api/v1/perfil?lang=en