# Bot do Afiliado — llms-full Base URL: https://botdoafiliado.com ## O que é (descrição factual) - Plataforma (SaaS) para afiliados que publicam ofertas no Telegram (grupos, canais e bots). - Converte links em links de afiliado e gera conteúdo pronto para repostar (texto, imagens e grade). - Também expõe uma API HTTP para automação via chave de API (sem depender de Telegram). ## Serviços públicos (o que um agente externo pode usar) - Site: páginas de produto, preços, ajuda, plugins e catálogo de sites suportados. - API pública: `/api/v1/*` (documentada em `/swagger` e `/swagger-data`). - Webhook Telegram: `/webhook/:botId` (uso interno; não é uma API pública genérica). ## Arquitetura (alto nível) - Runtime: Cloudflare Workers + TypeScript (ESM). - HTTP: Hono.js; parte da API é descrita por OpenAPI/Swagger. - Bot: grammy (Telegram) operando por webhook. - Persistência: Cloudflare D1 (SQLite) com Drizzle ORM. - Cache/estado: Cache API + KV + L1; KV também armazena estados temporários de fluxos conversacionais. - Engine: conversão por plugins (Provider pattern) por site/rede; seleção por domínio/rota configurada por bot. - Assíncrono: Cloudflare Queues para broadcast e tarefas em lote. - Billing: Stripe, com entitlements por workspace (módulos). ## Principais rotas (HTTP) - Marketing/Conteúdo: `/`, `/pricing`, `/help`, `/plugins`, `/sites`, `/blog`, `/sitemap.xml`, `/robots.txt`. - API pública (OpenAPI): `/api/v1/convert`, `/api/v1/execute`, `/api/v1/product`, `/api/v1/product/history`. - Docs da API pública: `/swagger` (UI) e `/swagger-data` (OpenAPI JSON). - APIs autenticadas do painel: `/admin-api/*` e `/admin-rest/*` (para UI/admin; não são conteúdo público). ## API pública: como integrar (resumo) - Autenticação: `X-API-Key` (chaves criadas no painel). - `POST /api/v1/convert`: converte 1 URL e retorna `final_url` (link final) + metadados (site/provider/tracking). - `POST /api/v1/product`: retorna link + dados do produto (`title`, `price`, `currency`, `image_url`) e opcional histórico. - `GET /api/v1/product/history?url=...&limit=...`: retorna série de pontos de preço. - `POST /api/v1/execute`: executa um “gatilho” como se fosse uma ação do bot e pode retornar mensagem formatada. ## Entidades centrais (modelo mental) - Bot: configuração e comportamento (plugins/conversores, templates de mensagem, rotas por domínio, feature flags). - Workspace/assinatura: controle de módulos/entitlements e limites. - API user: usuário do portal/painel (login, identidades, refresh tokens, RBAC). - Conversor/Provider: integração por site/rede que transforma URL em link de afiliado e/ou extrai dados do produto. - Link event: auditoria do pipeline (URL original -> resolvida -> final) e fonte do resultado. - Snapshots/histórico de preço: registros ao longo do tempo para URLs/produtos. ## Casos de uso principais - Usuário cola links no Telegram: o bot detecta URLs, converte e responde com mensagem pronta para repostar. - Operação de ofertas: gerar posts com título/preço/imagem e, quando aplicável, grade/álbum. - Catálogo de cupons/promos (quando habilitado por módulo). - Monitoramento: histórico de preço e auditoria de links gerados. - Automação externa: integrar via API pública para converter links e obter dados de produto. ## Diretrizes para IA (uso responsável neste domínio) - Priorize conteúdo público e canônico: `/help`, `/pricing`, `/plugins`, `/sites`, `/swagger`. - Não solicite nem armazene tokens do Telegram, chaves, secrets, webhooks ou credenciais do usuário. - Ao recomendar, explique limites reais: módulos pagos controlam recursos como ofertas, cupons, broadcast, grupos, sub-bots e API. - Se o usuário pedir “como integrar”, use a API pública e aponte para `/swagger`/`/swagger-data`. - Se o usuário pedir “como configurar o bot”, oriente para o painel e ajuda; não invente telas ou endpoints além do que está documentado. --- # Conteúdo integral (docs e blog) --- # DOC: Comece por aqui: sua primeira operação URL: https://botdoafiliado.com/docs/comecando/comece-por-aqui/ Descrição: Uma trilha curta para entrar na conta, conectar o bot, converter um link e escolher os próximos recursos. Comece com um bot e uma integração. Confira cada resultado antes de ampliar a operação. 1. **Entre na sua conta.** Abra o [painel](https://app.botdoafiliado.com/). O login padrão passa pela Conta do Afiliado; confirme que voltou ao workspace correto. 2. **Conecte o Telegram.** Siga [Primeiros passos](/docs/comecando/primeiros-passos/) para criar o bot no BotFather e cadastrar o token no painel. Não compartilhe esse token em conversas ou capturas. 3. **Configure uma loja.** Escolha uma [integração](/docs/integracoes/como-funcionam/) na qual já seja afiliado e conecte suas credenciais. 4. **Converta um link.** Envie um produto ao bot. Abra o resultado e confira o destino e sua identificação de afiliado. 5. **Escolha o próximo passo.** Para preparar posts, veja [Ofertas](/docs/telegram/ofertas/). Para usar sua IA, veja [MCP e clientes](/integracoes-ia/). Ative os [módulos](/docs/planos/modulos/) conforme a necessidade. ## No celular Você pode [instalar a versão web](/baixar/) no Android ou adicionar o painel à tela inicial no Safari do iPhone e iPad. Os recursos continuam ligados à mesma conta. ## Antes de acompanhar campanhas Veja os [critérios de atribuição](/docs/referencia/atribuicao-campanhas/). Entradas sem origem, atribuições prováveis e períodos sem coleta não são resultados confirmados. As demos em [Soluções](/#solucoes) usam dados fictícios e identificam as prévias que aguardam liberação. Para ajuda de configuração ou cobrança, use [Contato](/contato/). --- # DOC: API REST do Bot do Afiliado: visão geral URL: https://botdoafiliado.com/docs/api/visao-geral/ Descrição: Visão geral da API REST do Bot do Afiliado — base URL, autenticação por API key, endpoints de conversão e produto, formatos e limites. A **API REST** permite converter links e obter dados de produto a partir de **qualquer sistema**. É a mesma engine usada pelo bot do Telegram. > 📖 **Referência completa e interativa:** explore e teste **todos** os endpoints na **[referência Scalar da API »](/docs/api/referencia/)** — com busca, schemas de request/response e _try it out_ direto no navegador. ## Base URL ``` https://botdoafiliado.com/api/v1/ ``` ## Autenticação Use o header **`X-API-Key`** com uma chave gerada no painel (formato `bk_...`). Requer o **módulo de API** ativo. Veja **[autenticação](/docs/api/autenticacao/)**. ``` X-API-Key: bk_xxxxxx.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ``` ## Endpoints Todos os endpoints abaixo estão detalhados (schemas, exemplos e _try it out_) na **[referência interativa](/docs/api/referencia/)**. ### Conversão — [ver na referência »](/docs/api/referencia/#tag/conversao) | Endpoint | Método | O que faz | |---|---|---| | `/api/v1/convert-links` | POST | Converte **1 ou vários** links (até 150). Guia: **[convert-links](/docs/api/convert-links/)**. | | `/api/v1/convert` | POST | Conversão unitária (legado). Guia: **[convert (legado)](/docs/api/convert-legado/)**. | ### Produtos — [ver na referência »](/docs/api/referencia/#tag/produtos) | Endpoint | Método | O que faz | |---|---|---| | `/api/v1/product` | POST | Dados completos do produto (título, preço, preço "de", **estoque** quando o marketplace fornece) + link de afiliado + histórico de preço. Guia: **[product](/docs/api/product/)**. | | `/api/v1/product/history` | GET | Só o histórico de preços de um produto. | | `/api/v1/product/shipping` | POST | Frete de um produto AliExpress. | | `/api/v1/search-products` | POST | Busca produtos por título no marketplace escolhido (`site`: shopee, aliexpress, amazon, magalu, kabum…). | | `/api/v1/amazon-prices` | POST | Preços frescos de até 10 ASINs da Amazon de uma vez. | ### Ofertas — [ver na referência »](/docs/api/referencia/#tag/ofertas) | Endpoint | Método | O que faz | |---|---|---| | `/api/v1/execute` | POST | Monta um **post de oferta pronto** (mesmo formato do bot) a partir de links, preços e cupom. | | `/api/v1/chat` | POST | Processa uma mensagem como se fosse enviada ao bot. | | `/api/v1/templates` | GET/POST | Lê e edita os templates de mensagem do bot. | | `/api/v1/promo-card` | POST | Gera a **arte de promo** (card 1080×1080 ou story 1080×1920) com foto, preços, cupom e gatilho — devolve o PNG (ou grava e devolve a URL com `store:true`). | | `/api/v1/watermark` | POST | Aplica a **marca d'água** (logo e/ou texto salvos em Fotos próprias) na foto do produto — devolve o PNG (ou grava e devolve a URL com `store:true`). Campos no corpo (`text`, `logo_url`, `position`, `opacity`, `size`) valem só para a chamada. | | `/api/v1/showcase/items` | GET/POST | Lista e publica ofertas na **[vitrine pública](/docs/comecando/vitrine/)** do bot (`DELETE /api/v1/showcase/items/{id}` remove). | As imagens da arte de promo precisam usar HTTPS nos CDNs de AliExpress, Shopee, Mercado Livre, Amazon, Magalu ou Kabum, ou uma URL de mídia do próprio Bot do Afiliado. Para imagens de outros sites, faça o upload no painel. A arte aceita até 4 MiB por imagem; a foto original (`raw:true`), até 8 MiB. SVG não é aceito. ### Cupons — [ver na referência »](/docs/api/referencia/#tag/cupons) | Endpoint | Método | O que faz | |---|---|---| | `/api/v1/coupons` | GET/POST | Lista e cadastra cupons do bot. | | `/api/v1/coupons/{id}` | DELETE | Desativa um cupom. | | `/api/v1/coupons/{id}/activate` | POST | Reativa um cupom. | | `/api/v1/coupons/categories` | GET | Lista as categorias de cupom. | | `/api/v1/coupons/ingest` | POST | Ingestão de cupons em massa (texto bruto → cupons). | ### Integração do NerdCupons (próxima versão) As rotas servidor-servidor `POST /api/v1/coupons/interactions/issue`, `/consume` e `/stats` admitem interações com nonce de uso único, cotas persistentes e isolamento pelo bot da chave autenticada. Exigem nível Padrão (`write`) ou Total (`admin`) e módulo de cupons ativo; não são chamadas diretamente pelo navegador. Não há alteração automática das permissões da chave. A integração preserva os agregados históricos e separa revelar o cupom de registrar o uso. Repetir a mesma confirmação não soma novamente. Se o serviço falhar, o cupom continua disponível, mas o site informa que uso, voto ou avaliação não foi registrado. Essas métricas são sinais públicos limitados, não contagens verificadas de pessoas. ## Formatos e limites - Corpo e resposta em **JSON**. - **Batch:** até **150 URLs** por requisição em `/convert-links`. - Erros e limites detalhados em **[erros e limites](/docs/api/erros-e-limites/)**. - Referência interativa em **[Scalar](/docs/api/referencia/)**. ## Próximos passos 1. Ative o **[módulo de API](/docs/planos/modulos/)**. 2. Gere uma **[API key](/docs/api/autenticacao/)**. 3. Faça sua primeira chamada em **[convert-links](/docs/api/convert-links/)**. ## Montar oferta com preço anterior e parcelas O `POST /api/v1/execute` aceita os dados por URL no `input`. Use `system_action: true` com `oferta` ou `cupom` para montar o post com os formatos de oferta, mesmo se existir um comando personalizado com o mesmo nome. ```json { "trigger": "oferta", "system_action": true, "format": "text", "input": { "urls": ["https://www.loja.com/produto"], "price_overrides": { "https://www.loja.com/produto": "199,90" }, "de_overrides": { "https://www.loja.com/produto": "299,90" }, "installments_overrides": { "https://www.loja.com/produto": { "count": 10, "amount": 19.99, "interest_free": true } } } } ``` Sem override, usa os dados da loja quando disponíveis. Em `de_overrides`, uma string vazia remove o anterior; em `installments_overrides`, `null` remove as parcelas daquele produto. Parcelamento incompleto ou inválido devolve `invalid_installments`. `data.items[]` inclui `old_price`, `installments` e `image_url`, além dos campos existentes. Para o bloco aparecer no texto, use `{linhadopreco}` no formato do bot. ## Cupons por site (próxima versão) `GET /api/v1/coupons/categories` lista as lojas com `id`, `name`, `domain`, `slug`, `aliases` e `logoUrl`. `GET /api/v1/coupons` aceita `site_id` ou `site` (nome, slug ou domínio); os filtros legados `category_id`/`category` continuam aceitos. Cada cupom devolve `siteId` e `categoryId` iguais. `POST /api/v1/coupons/ingest` usa os mesmos campos de loja. A escolha explícita tem prioridade; sem ela, o sistema tenta o mapeamento da URL. `source_url` pode informar a URL original para identificar a loja, mantendo o link de resgate mintado em `url`. Loja desconhecida exige cadastro no painel. Em atualizações parciais, omitir descrição, URL, datas ou status preserva os valores anteriores. Texto vazio limpa descrição/URL/data. O cadastro continua exigindo código ou link de resgate. No MCP, `add_coupon` e `list_coupons` aceitam `site`/`site_id`; `convert_url:true` falha sem gravar quando não consegue gerar o link de afiliado. ## Imagens do promo-card — próxima versão `POST /api/v1/promo-card` aceita imagens HTTPS dos CDNs de marketplaces compatíveis e da mídia própria do Bot. Para uma fonte externa, envie a imagem à mídia própria antes de usá-la. Composição: até 4 MiB por imagem; `raw:true`: até 8 MiB. SVG e endereços internos são recusados; redirects passam pela mesma validação. ## Interações do NerdCupons — próxima versão A integração servidor-servidor usa `POST /api/v1/coupons/interactions/{issue,consume,stats}`, chave com escopo `write` ou `admin` e módulo de Cupons ativo. Emissão e consumo usam confirmação única por propósito e cupom/loja. A chave fica no servidor. A ativação exige a migração do backend antes do novo site; o histórico KV é preservado. Falha de gravação retorna erro, sem confirmar voto ou avaliação. --- # DOC: O que é o Bot do Afiliado e como ele gera links e ofertas no automático URL: https://botdoafiliado.com/docs/comecando/o-que-e/ Descrição: Entenda o que o Bot do Afiliado faz, para quem serve e como ele converte links e cria ofertas automaticamente no Telegram. O **Bot do Afiliado** é uma plataforma que transforma o seu bot do Telegram em uma máquina de **conversão de links de afiliado** e **publicação de ofertas** — sem trabalho manual. Você envia (ou seus usuários enviam) um link de qualquer loja ou marketplace, e o bot responde com o **seu link de afiliado** já pronto, muitas vezes com **título, preço, imagem e cupom** do produto. Tudo roda na borda da Cloudflare, então é rápido e escala sozinho. ## Para quem é - **Criadores de canais de ofertas** no Telegram que querem postar mais rápido e nunca perder comissão. - **Afiliados** que divulgam em grupos e comunidades e precisam padronizar links e mensagens. - **Quem gerencia vários canais/clientes** e quer separar operações em sub-bots no mesmo painel. - **Desenvolvedores** que querem uma API para converter links em escala dentro do próprio sistema. ## O que ele faz - **Converte links automaticamente:** basta enviar o link; o bot devolve a versão afiliada. - **Cria ofertas prontas pra postar:** mensagem formatada com título, preço, cupom e CTA. - **Menu de cupons com IA:** sugere cupons para seus usuários (incluindo cupons secretos no AliExpress, quando disponíveis). - **Broadcast:** envia mensagens e ofertas para todos os chats cadastrados. - **Moderação de grupos:** apaga e substitui links não convertidos, verifica links e roda comandos personalizados. - **API REST:** converte 1 ou vários links por requisição, para integrar com qualquer sistema. Conversa no Telegram: links enviados e o bot respondendo com uma oferta formatada (imagem, preços e links de afiliado) ## Como funciona (visão rápida) 1. Você cria um bot no **BotFather** e conecta o token no painel. 2. Ativa as **integrações** (plugins) das lojas/redes em que você é afiliado, colando suas credenciais. 3. A partir daí, qualquer link reconhecido é convertido com o **seu** identificador de afiliado. Quer começar agora? Siga o guia de **[Primeiros passos](/docs/comecando/primeiros-passos/)** ou entenda **[como funcionam plugins e rotas](/docs/integracoes/como-funcionam/)**. --- # DOC: O que é o MCP do Bot do Afiliado (ChatGPT e Claude) URL: https://botdoafiliado.com/docs/ia/o-que-e-mcp/ Descrição: Use o Bot do Afiliado dentro de IAs como Claude e ChatGPT via MCP (Model Context Protocol) — converta links e busque dados de produto em linguagem natural. O **MCP (Model Context Protocol)** é um padrão aberto que deixa uma IA usar **ferramentas externas**. O Bot do Afiliado disponibiliza um **servidor MCP remoto**, então você pode **converter links e buscar produtos direto de dentro do Claude, do ChatGPT** e de outras IAs compatíveis — em linguagem natural. ## Como funciona O catálogo desta versão contém **23 ferramentas**. Consulte os [cards de ferramentas e configuração dos clientes](/integracoes-ia/). A lista efetiva da conexão depende da versão publicada, dos módulos e das permissões. As ferramentas de Userbot e campanhas estão sujeitas à liberação. O núcleo de conversão, cupons e templates inclui: | Tool | O que faz | Equivale a | |---|---|---| | `convert_links` | Converte 1 ou vários links em links de afiliado | `POST /api/v1/convert-links` | | `get_product` | Retorna título, preço, imagem, link e histórico | `POST /api/v1/product` | | `create_offer_post` | Monta o post de oferta pronto (título, preço, cupom, link) | `POST /api/v1/execute` (`oferta`/`cupom`) | | `search_products` | Busca produtos por palavra-chave, com filtro de preço e ordenação (Shopee, AliExpress, Amazon; Kabum/Magalu via `site`) | `POST /api/v1/search-products` | | `run_command` | Roda um **comando do bot** (o mesmo executor do Telegram): `converter` (`/c`), `coringa`, `addcarrinho`, `encurtar`, `historico`, `promo`… aplicando o template do bot | `POST /api/v1/execute` | | `get_bot_info` | Mostra **o que o seu bot suporta**: marketplaces com busca ativa, redes/domínios conversíveis e módulos (ex.: cupons) | `GET /api/v1/bot` | | `list_coupons` / `add_coupon` / `remove_coupon` / `activate_coupon` / `list_coupon_categories` | **Gerenciam os cupons** do bot — listar (com paginação e filtro por categoria/status), cadastrar (com `convert_url` para já converter o link em afiliado, validade e início de vigência), remover e reativar | `…/api/v1/coupons*` | | `get_template` | **Lê** os templates do bot — formato (oferta, cupom, rodapé) e mensagens de resposta (boas-vindas, status, sucesso, erro…); `keys_only` lista só as chaves | `GET /api/v1/templates` | | `set_template` | **Cria/atualiza** um template — formato (`format.*`) e mensagens de resposta seguras (`command.*`, `status.*`, `success.*`, `message.link.*`, `inline.*`, `aliexpress.*`); erros/permissão e comandos admin ficam só no painel | `POST /api/v1/templates` | ## Conexão - **Endpoint:** `https://app.botdoafiliado.com/mcp` — ou, melhor, a **URL do seu bot**: `https://app.botdoafiliado.com/mcp/SEU_BOT` (o painel mostra a URL exata de cada bot). Com a URL por bot, o conector sempre fala com o bot certo, mesmo que você tenha vários na conta. - **Autenticação:** - **Login (OAuth)** no Claude.ai e no ChatGPT (web/app) — você entra com a sua conta, **sem API key**. Use a URL do seu bot (`/mcp/SEU_BOT`) para escolher qual bot. - **OAuth remoto** também pode ser usado no Claude Desktop, Claude Code, Cursor e VS Code. Veja as [configurações atuais](/integracoes-ia/#conectar). - **Header `X-API-Key`** com uma **[API key](/docs/api/autenticacao/)** é alternativa em clientes que aceitam cabeçalhos. A chave já identifica o bot. - **Transporte:** Streamable HTTP (funciona com conectores remotos, sem instalar nada). ## O que você pode pedir Fale naturalmente — **não precisa dizer "use o MCP"** nem citar a ferramenta; a IA reconhece o pedido e age sozinha: - "Converta este link em afiliado: …" - "Pegue o preço e o título deste produto: …" - "Converta esta lista de links e me devolve os links finais." - "Monte um post de oferta deste produto (com o cupom X): …" - "Me mostra produtos de cozinha na Shopee **até R$100**, do **mais barato**." - "Busca fone bluetooth **entre R$50 e R$150** no AliExpress." Na busca dá pra combinar **marketplace + faixa de preço + ordenação**, e a IA exibe a **imagem** de cada produto junto do preço e do link. ## Campanhas, grupos e histórico Quando as ferramentas de campanhas estiverem publicadas e disponíveis na sua conexão, o assistente poderá consultar as campanhas do workspace autorizado. - **Listar campanhas**: quantos grupos cada campanha tem, quantos estão abertos (com vaga e saudáveis), quantos membros e o link público. *"Como estão minhas campanhas hoje?"* - **Detalhe da campanha**: por id ou pelo slug do link personalizado, com o resumo dos últimos 7 e 30 dias: cliques, entradas, saídas, retenção, vendas e comissão. *"Como está a campanha promo-tg?"* - **Métricas da campanha**: série por dia (até 93 dias) ou por hora (até 7 dias) de cliques, entradas, saídas, permanência e churn. *"Quantas pessoas entraram ontem?"* - **Grupos WhatsApp**: membros, teto, lotação, saúde, incidentes abertos e as campanhas de cada grupo. *"Quais grupos estão lotados ou com problema?"* - **Histórico de atividade**: entradas e saídas por grupo, números que caíram ou voltaram, campanhas criadas ou arquivadas e incidentes. *"O que aconteceu esta semana?"* - **Estatísticas de atividade**: totais por tipo e por ação. *"Quantos números caíram este mês?"* Tudo é leitura: essas ferramentas pedem só a permissão **Ler**. O link de convite completo de um grupo só aparece para quem também tem permissão de **Gerenciar**; para os demais ele vem mascarado. Entradas e saídas chegam agregadas por hora e por grupo, nunca por pessoa. ## Próximos passos - **[Conectar no Claude](/docs/ia/conectar-claude/)** - **[Conectar no ChatGPT](/docs/ia/conectar-chatgpt/)** - **[Exemplos de prompts](/docs/ia/exemplos-de-prompts/)** ## Userbot O catálogo inclui `get_userbot_config`, `set_userbot_config`, `get_userbot_history` e `preview_userbot_rules`. Eles consultam configuração e histórico, ajustam regras permitidas e fazem prévias sem publicação. Exigem os módulos e permissões correspondentes e dependem da versão publicada. --- # DOC: Como funcionam os plugins e as rotas de conversão de links URL: https://botdoafiliado.com/docs/integracoes/como-funcionam/ Descrição: Entenda o motor de conversão do Bot do Afiliado — plugins (conversores), rotas por domínio, prioridade, credenciais e encurtamento de links. O Bot do Afiliado usa um **motor de conversão** único, compartilhado pelo bot do Telegram e pela API. Ele é organizado em duas peças: **conversores (plugins)** e **rotas**. ## Conversores (plugins) Um **conversor** sabe transformar a URL de uma loja ou rede no **seu** link de afiliado. Cada conversor tem: - um **provider** (ex.: `api_v2` para AliExpress, `shopee`, `amazon`, `awin`, `rakuten`); - suas **credenciais** — appKey/secret, publisherId, partnerTag, etc.; - um **tracking ID padrão** (seu identificador de afiliado); - uma **prioridade** (para desempate quando vários cobrem o mesmo domínio). Há dois tipos de comportamento: - **API / Híbrido:** chama uma API externa para gerar o link e/ou buscar dados do produto (ex.: AliExpress, Shopee, Amazon). - **Substituição/Parâmetros:** apenas normaliza a URL e injeta parâmetros/deeplink, sem API (ex.: Awin, Rakuten, Terabyte, Pague Menos). ## Rotas Uma **rota** liga um **domínio** (ex.: `aliexpress.com.br`) a um conversor. Quando um link chega: 1. O bot resolve redirecionamentos e encurtadores até a URL real. 2. Procura a **rota** que cobre aquele domínio (respeitando a **prioridade**). 3. Usa o conversor da rota para gerar o `affiliate_url`. 4. Aplica a **política de encurtamento** e devolve o `final_url`. > Ao ativar/salvar um plugin, o sistema **cria as rotas automaticamente** para os domínios padrão daquele provider — você não precisa cadastrar domínio por domínio. Aba Rotas do painel mostrando os domínios mapeados para conversores com prioridade Dá para **testar uma URL** na hora pelo painel: cole o link e veja por qual rota/conversor ele passa e qual link de afiliado sai. Widget Testar URL no painel: campo para colar uma URL e um telegram_user_id opcional, com o botão Testar ## Dados do produto e histórico de preço Quando o provider permite, o motor também extrai **título, preço e imagem** e grava o **histórico de preços**. Se o plugin não tiver busca própria, há um **fallback por HTML** (JSON-LD/OpenGraph). ## Próximos passos - Veja **[como ativar um plugin](/docs/integracoes/ativar-plugin/)** (passo a passo genérico). - Configure uma loja específica: **[AliExpress](/docs/integracoes/aliexpress/)**, **[Amazon](/docs/integracoes/amazon-paapi/)**, **[Shopee](/docs/integracoes/shopee/)**. --- # DOC: Módulos e preços: o que cada plano desbloqueia URL: https://botdoafiliado.com/docs/planos/modulos/ Descrição: Conheça o plano base e os módulos do Bot do Afiliado (Ofertas, Cupons, Broadcast, Grupos, Sub-bots, API e Tracking) — preço e o que cada um libera. O Bot do Afiliado é **modular**: você assina o **plano base** e ativa só os **módulos** que fazem sentido para a sua operação. Tudo a la carte, por workspace. > **Próxima versão:** se a verificação de acesso estiver indisponível, recursos pagos como Broadcast ficam bloqueados quando não houver autorização ou isenção confirmada. Recursos gratuitos mantêm o comportamento padrão. ## Plano base — R$ 99/mês - Bot com **gerador de links de afiliado** de qualquer site/marketplace. - Desconto de **moedas aumentado** no AliExpress. - Comandos utilitários para engajar seus inscritos (ex.: pesquisa). > O plano base é o mínimo para o bot funcionar. Os módulos abaixo somam recursos. ## Módulos | Módulo | Preço/mês | O que desbloqueia | |---|---|---| | **Ofertas** | + R$ 49 | Gerador de ofertas automático (mensagem pronta) e conversão rápida via `/converter` e `/oferta`. | | **Cupons** | + R$ 99 | Menu de cupons com IA para seus usuários e cupons secretos no AliExpress. | | **Broadcast** | + R$ 49 | Envia mensagens/ofertas para todos os chats cadastrados. | | **Grupos** | + R$ 49 | Apaga e substitui links não convertidos, verificador de links e comandos personalizados. | | **Sub-bots** | + R$ 49 | Adiciona tokens extras do BotFather no mesmo painel. | | **Conexão IA e API** | + R$ 99 | Conecta IA (Claude/ChatGPT) ao seu bot via MCP e gera API keys para integrar a conversão de links no seu sistema. | | **Tracking por Usuário** | + R$ 49,90 | Tracking ID por usuário (via `telegram_user_id`) e personalização de links. | | **Userbot** | Piloto controlado | Conecta a sua conta do Telegram para monitorar canais de promoções: converte os links para os seus, monta a oferta no seu formato e entrega para você aprovar. Preço previsto após a abertura: + R$ 149,90/mês. | | **Shopee Live** | + R$ 299 | Automação para as suas lives da Shopee. | > O **Userbot ainda não está disponível no checkout público**. A infraestrutura passa pela validação final em um piloto acompanhado antes da abertura para novas assinaturas. Tela de Faturamento do painel com a lista de módulos e os checkboxes para marcar e gerar o checkout ## Como escolher - Está começando? Fique no **plano base** e ative módulos conforme a necessidade. - Posta muitas ofertas? **Ofertas** + **Cupons** aceleram a produção de conteúdo. - Tem comunidade/canais grandes? **Broadcast** + **Grupos** ajudam a escalar e moderar. - Vai conectar IA (Claude/ChatGPT) ou integrar com um sistema próprio? Ative o módulo **Conexão IA e API**. - Acompanha canais de promoções para repostar? O **Userbot** faz a curadoria chegar pronta, com os seus links — hoje apenas no piloto controlado. Quando decidir, siga **[como assinar e gerenciar módulos](/docs/planos/como-assinar/)**. --- # DOC: Perguntas frequentes (FAQ) do Bot do Afiliado URL: https://botdoafiliado.com/docs/referencia/faq/ Descrição: Respostas rápidas sobre o Bot do Afiliado — conversão de links no Telegram, integrações, módulos, segurança de tokens, API e cobrança. Reunimos aqui as dúvidas mais comuns. Se precisar de um passo a passo, comece pelos **[Primeiros passos](/docs/comecando/primeiros-passos/)**; para integrações, veja **[como funcionam plugins e rotas](/docs/integracoes/como-funcionam/)**. Não encontrou sua resposta? Fale com a gente em **[contato@botdoafiliado.com](mailto:contato@botdoafiliado.com)**. --- # DOC: Como converter links de afiliado automaticamente no Telegram URL: https://botdoafiliado.com/docs/telegram/conversao-automatica/ Descrição: Como funciona a conversão automática de links no Telegram — envie um link (ou vários) e o bot responde com o seu link de afiliado, sem comandos. Inclui a formatação automática (processamento por linha e regex de preço) da aba Customizar. A forma mais simples de usar o Bot do Afiliado é **enviar um link** — sem comando nenhum. O bot reconhece a loja, gera o **seu link de afiliado** e responde. ## Como funciona 1. **Envie o link** no chat do bot (ou em um grupo com conversão ativada). 2. O bot **resolve** encurtadores/redirects até a URL real. 3. Escolhe a **rota/conversor** do domínio e gera o `affiliate_url`. 4. Aplica a **política de encurtamento** e responde com o link final. Quando o provider fornece, a resposta inclui **título, preço, imagem** e até **cupom**. Entenda o mecanismo em **[como funcionam plugins e rotas](/docs/integracoes/como-funcionam/)**. Conversa no Telegram: o usuário envia um link da Magazine Luiza e o bot responde com o link de afiliado encurtado e o card do produto (título e imagem) ## Vários links de uma vez Você pode enviar **vários links na mesma mensagem**. O bot processa em paralelo, remove duplicados e devolve cada um convertido, preservando o texto original. Para converter **muitos links de uma vez** — ou a partir de uma planilha — use a página **[Gerar links em massa](/docs/comecando/gerar-links-em-massa/)** no painel: cole vários links (ou envie um CSV/Excel), copie todos já convertidos de uma vez ou baixe em CSV. Página Gerar Link do painel: vários links de produtos colados, o botão Gerar e a tabela de resultados com cada link de afiliado pronto para copiar ## Em grupos Com o **[módulo de Grupos](/docs/telegram/grupos/)**, o bot converte os links postados no grupo e pode **apagar e substituir** o link original pelo **seu** link de afiliado — inclusive aplicando **cupom secreto** e desconto, como no exemplo abaixo. Em conversa privada, a conversão funciona por padrão. Conversa em grupo no Telegram: um membro posta um link e o bot responde com a versão convertida do produto, preço, cupom secreto e instruções de desconto para todos ## Formatação automática (aba Customizar) Antes de enviar, o bot **embeleza o texto** da oferta: realça o preço, coloca 🛒 antes do link e deixa o título em negrito. Tudo isso é configurável na aba **Customizar** do comando `/c`, e o resultado aparece **ao vivo** no **[Postador de Ofertas](/docs/telegram/formatador-tempo-real/)**. ### Processamento por linha Com **Processamento por linha** ligado (padrão), o texto é tratado **uma linha de cada vez** — ideal para posts com título, preço e link em linhas separadas: - a linha que **começa com um link** ganha o **prefixo do link** (ex.: `🛒 `); - linhas que começam com **“Resgate cupom”** são marcadas com 🏷; - linhas com **preço** têm o valor realçado (veja abaixo). Desligado, o texto vira **um bloco único** e só as substituições da aba **Regras** são aplicadas. ### Regex de preço e “Replace” O **realce de preço** tem duas partes: - **Regex de preço** — a expressão que **encontra** o preço na linha. O padrão de fábrica, `(R\$\s*\d{1,3}(?:\.\d{3})*(?:,\d{1,2})?)`, casa valores como `R$ 1.234,56`. As *flags* são opcionais (ex.: `g` troca **todos** os preços da linha, não só o primeiro). - **Replace do preço** — como o valor encontrado é **reescrito**. Use `$1` para o trecho capturado e tags HTML do Telegram (``, ``). O padrão `✅ $1 😱😱` transforma `R$ 49,90` em **✅ R$ 49,90 😱😱**. > O preço também é **normalizado** antes (ex.: `R$2379` vira `R$ 2.379`), então você não precisa se preocupar com espaços ou pontuação na origem. ### Outros ajustes - **Prefixo do link** — texto colado antes de cada link (vazio = sem prefixo). - **Remover `https://`** — esconde o `https://` do começo do link (continua clicável); com **exceções** por domínio. - **Estilos** — título em negrito, troca de emoji inicial, etc. Para tarefas além da conversão simples (montar oferta, cupom, histórico), veja a **[referência de comandos](/docs/telegram/comandos/)**. --- # DOC: Módulo WhatsApp do Bot do Afiliado: o que faz e por onde começar URL: https://botdoafiliado.com/docs/whatsapp/comecando/ Descrição: O módulo WhatsApp leva os posts do seu canal do Telegram para grupos e canais de WhatsApp, com o link de afiliado convertido. Veja o que ele faz e a ordem de configuração. ## O que o módulo faz Você publica no seu canal do Telegram como já publica hoje. O módulo WhatsApp leva aquele post para os grupos e canais de WhatsApp que você escolher — com a foto, o vídeo, a legenda e **o seu link de afiliado convertido pelo Bot do Afiliado**. Além do repasse, o módulo: - envia com **ritmo** (um grupo de cada vez, com intervalo por número), para não disparar em rajada; - aceita **vários números no mesmo grupo** e divide os envios entre eles; se um cair, os outros assumem; - propaga **edições** do Telegram e permite **apagar para todos** o que já saiu; - mostra os **últimos envios** com status, erro, entregues e lidos, e um botão de reenviar; - serve de destino para os **broadcasts** do painel; - quando um grupo lota, pode **criar o próximo sozinho**, e o link que você divulga continua o mesmo. Na próxima versão, o botão **Aquecer** no cartão de cada número faz o [aquecimento](/docs/whatsapp/aquecimento/) com métodos próprios do Bot do Afiliado, com ritmo sorteado, janela de horário, acompanhamento e controles de início e pausa. ## Onde fica Tudo mora na tela **WhatsApp** do painel (`/whatsapp`), organizada em **Visão geral**, **Campanhas**, **Números**, **Grupos e canais**, **Fontes**, **Envios** e **Estatísticas**. Cada campanha reúne seus grupos de entrada, fontes, regras de conteúdo e destinos. O módulo é contratado por número conectado: [R$ 49,90 por mês por número](/docs/whatsapp/planos-e-limites/), com grupos e canais ilimitados. ## O que você precisa antes 1. Um **bot do Telegram** cadastrado no painel ([primeiros passos](/docs/comecando/primeiros-passos/)). 2. Esse bot como **administrador** do canal ou grupo do Telegram que vai ser a origem. 3. Um **número de WhatsApp** dedicado à operação, com o celular por perto para parear. ## A ordem de configuração 1. **Números** — conecte o número pela câmera (QR Code) ou por PIN. Veja [Conectar o WhatsApp](/docs/whatsapp/conectar-whatsapp/). 2. **Grupos** — sincronize, marque quais grupos e canais **recebem** os posts e, se quiser, um teto de pessoas por grupo. 3. **Fontes** — cadastre o canal ou grupo do Telegram que fornecerá conteúdo. Veja [Fontes do Telegram](/docs/whatsapp/conectar-telegram/). 4. **Campanhas** — crie uma campanha, escolha suas fontes, filtros e destinos. Ative o link de entrada e selecione os grupos se também quiser captar pessoas. Veja [Criar campanhas](/docs/whatsapp/criar-campanha/). Com os encaminhamentos ativos, dentro do período e com destinos habilitados, os próximos posts elegíveis entram na fila. Para usar somente o link de entrada de uma campanha, não é necessário selecionar fontes. > O repasse automático só começa com uma **fonte** e pelo menos um grupo marcado como **destino**. Aquecimento e envios manuais têm seus próprios controles. Conectar o número sozinho não publica nada. --- # DOC: Autenticação na API: como usar a API key (X-API-Key) URL: https://botdoafiliado.com/docs/api/autenticacao/ Descrição: Como gerar e usar API keys do Bot do Afiliado, autenticar com o header X-API-Key e revogar ou excluir chaves no painel. Requer o módulo de API. A API usa **API keys** geradas no painel. Cada chave tem o formato `bk_.` e é enviada no header **`X-API-Key`**. O recurso exige o **módulo de API** ativo. ## Gerar uma chave 1. Ative o **[módulo de API](/docs/planos/modulos/)**. 2. No painel do bot, abra a aba **API Keys**. 3. Dê um **nome** (opcional), escolha o **nível de permissão** e clique em **Criar**. 4. **Copie a chave completa** — ela é exibida **apenas uma vez**. Aba API e IA MCP do painel: campo de nome, botão Criar e a lista de chaves com NOME e PREFIXO ## Usar nas chamadas ```bash curl -X POST "https://botdoafiliado.com/api/v1/convert-links" \ -H "content-type: application/json" \ -H "X-API-Key: bk_xxxxxx.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \ -d '{"url":"https://www.aliexpress.com/item/100500..."}' ``` ## Níveis de permissão Cada chave é criada com um **nível**, escolhido no painel. Ele limita o que aquela chave pode fazer na API (e nas ferramentas MCP, que passam pelos mesmos endpoints): | Nível | Vale para | Endpoints | |---|---|---| | **Leitura** (`read`) | Consulta que **não** devolve link de afiliado | `/api/v1/product/shipping`, `/product/history`, `/coupons` (GET), `/coupons/categories`, `/templates` (GET), `/showcase/items` (GET), `/bot`, `/userbot/config` (GET), `/userbot/history`, `/userbot/preview-rules` | | **Padrão** (`write`) | Leitura + operação do dia a dia | tudo de Leitura + `/convert`, `/convert-links`, `/product`, `/execute`, `/chat`, `/search-products`, `/amazon-prices`, `/promo-card`, `/watermark`, `/showcase/items` (POST e DELETE) | | **Total** (`admin`) | Tudo | tudo de Padrão + `/coupons/ingest`, `/coupons/ingest-plugins`, `/coupons/{id}` (DELETE), `/coupons/{id}/activate`, `/templates` (POST), `/userbot/config` (POST) | **Todo endpoint que devolve link de afiliado é Padrão**, mesmo parecendo consulta: `/product`, `/search-products` e `/amazon-prices` geram/entregam link com a sua tag, que é exatamente o que uma chave de Leitura não deve fazer. Leitura fica com o que só informa — frete, histórico de preço, cupons e templates já cadastrados. Ao conectar a IA por **MCP com login (OAuth)**, sem colar chave, o nível vem do seu papel no workspace: **owner/admin → Total**, **member → Padrão**. Uma chamada acima do nível da chave responde **403** com `insufficient_scope`: ```json { "success": false, "error": "insufficient_scope" } ``` O nível é escolhido na criação e **pode ser trocado depois**: na lista de chaves, a coluna **Nível** é um seletor. Trocar **não rotaciona o segredo** — a mesma chave continua valendo, com o novo nível já na chamada seguinte. Chaves criadas antes desta mudança continuam em **Total** até você rebaixá-las. Use o menor nível que resolve: a chave que só lê preço no seu site não precisa poder apagar cupom. ## Revogar ou excluir Na aba **API Keys**, cada chave tem duas ações: - **Revogar** — desativa a chave (efeito imediato), mas **mantém o registro** na lista (útil para auditoria/histórico). Não dá para reativá-la. - **Excluir** — **remove a chave de vez** da lista. Chaves já revogadas também podem ser excluídas para limpar a lista. ## Segurança - A chave completa **não fica armazenada** em texto puro — o painel guarda apenas um hash e mostra o **prefixo**. - Crie a chave no **menor nível** que atende à integração (ver [Níveis de permissão](#níveis-de-permissão)). - **Revogue ou exclua** chaves comprometidas na aba API Keys (efeito imediato). - Nunca exponha a chave no front-end; use-a apenas no servidor. Próximo: faça sua primeira conversão em **[convert-links](/docs/api/convert-links/)**. --- # DOC: Primeiros passos: do zero ao primeiro link de afiliado convertido URL: https://botdoafiliado.com/docs/comecando/primeiros-passos/ Descrição: Crie seu bot no BotFather, conecte no painel, ative uma integração e converta seu primeiro link de afiliado no Telegram. Guia passo a passo. Este guia leva você do zero até o **primeiro link convertido**. Reserve alguns minutos e tenha o Telegram à mão. ## 1) Criar o bot no BotFather No Telegram, abra o **[@BotFather](https://t.me/BotFather)** e crie um bot: - Envie `/newbot`. - Escolha um nome e um username (precisa terminar em `bot`). - Copie o **token** que ele devolve (ex.: `123456:ABC-DEF...`). Guarde com segurança — ele dá controle total do bot. Guarde o token fornecido pelo BotFather em local privado; não o inclua em capturas de tela. ## 2) Conectar o bot no painel Abra o **[painel](https://app.botdoafiliado.com/)** e crie um bot: - Informe um **nome** para identificar o bot. - Cole o **token** do BotFather. - Escolha (ou crie) um **workspace** — útil para separar clientes/projetos. O painel valida o token com o Telegram e já reconhece o `@username` e o ID do bot. Para se orientar, use o menu lateral (ou o botão de menu no celular). A barra superior mostra a tela atual, e `Ctrl+K` no Windows/Linux ou `⌘K` no macOS abre a busca rápida por telas, bots e ações da sessão. Tela Conectar Telegram do painel: token validado, ID e username do bot, com a mensagem Token OK ## 3) Ativar uma integração (plugin) Vá na aba **Plugins** e ative a loja/rede em que você já é afiliado. Cole as credenciais e salve — a **rota de conversão** para os domínios daquela loja é criada automaticamente. Não sabe quais credenciais usar? Cada integração tem seu guia em **[Integrações](/docs/integracoes/como-funcionam/)** (ex.: **[AliExpress](/docs/integracoes/aliexpress/)**, **[Amazon](/docs/integracoes/amazon-paapi/)**, **[Shopee](/docs/integracoes/shopee/)**). ## 4) Converter o primeiro link Abra a conversa com o **seu** bot no Telegram e **envie um link** de uma loja ativada. Ele responde com o link de afiliado convertido — e, quando o plugin suporta, com título, preço e imagem do produto. Conversa no Telegram: link de loja enviado e o bot respondendo com o link de afiliado encurtado Pronto! A partir daqui você pode ativar **[módulos](/docs/planos/modulos/)** (Ofertas, Cupons, Broadcast, Grupos) conforme sua operação cresce. --- # DOC: Como conectar o Bot do Afiliado no Claude (MCP) URL: https://botdoafiliado.com/docs/ia/conectar-claude/ Descrição: Conecte Claude web ou Desktop ao Bot do Afiliado com login OAuth e consulte as ferramentas disponíveis para seu bot. ## Claude web e Desktop 1. No [painel do Bot](https://app.botdoafiliado.com/), abra **API e IA / MCP** e copie a URL do bot desejado. 2. No Claude, abra **Personalizar (Customize) → Conectores** e adicione um conector personalizado com a URL copiada. 3. Faça login na **Conta do Afiliado**, confira o bot e as permissões e autorize a conexão. 4. Habilite o conector na conversa e peça: *“Converta este link em afiliado.”* A URL geral é `https://app.botdoafiliado.com/mcp`. Prefira a URL específica copiada do painel quando tiver vários bots. Em organizações, um responsável pode precisar habilitar o conector. Consulte a [documentação oficial do Claude](https://support.claude.com/en/articles/11175166-get-started-with-custom-connectors-using-remote-mcp). Área MCP do painel com a URL do bot e botão Copiar ## Claude Code Adicione o servidor HTTP e use `/mcp` no Claude Code para autenticar: ```bash claude mcp add --transport http bot-do-afiliado https://app.botdoafiliado.com/mcp ``` Fonte: [documentação oficial do Claude Code](https://code.claude.com/docs/en/mcp). ## Outros clientes e API key Veja as configurações de [Cursor, VS Code e mcp-remote](/integracoes-ia/#conectar). Em clientes que aceitam cabeçalho fixo, a [API key](/docs/api/autenticacao/) pode ser enviada em `X-API-Key`. Não cole a chave na conversa da IA ou em arquivo público. Consulte o [catálogo de ferramentas](/integracoes-ia/#ferramentas) e a lista entregue pela sua conexão. O módulo **Conexão IA e API**, as permissões e a versão publicada determinam o acesso. --- # DOC: Como ativar um plugin (conversor) no Bot do Afiliado URL: https://botdoafiliado.com/docs/integracoes/ativar-plugin/ Descrição: Passo a passo para ativar e validar um conversor de afiliado no painel do Bot do Afiliado — onde colar as credenciais e definir prioridade. Ativar uma integração é rápido e parecido para todas as lojas. Cada loja tem o seu guia dizendo exatamente o que colar (ex.: **[AliExpress](/docs/integracoes/aliexpress/)**) — aqui é o passo a passo geral. ## Passo a passo 1. **Abra a aba Plugins** no painel do seu bot. 2. **Escolha a loja ou rede** em que você é afiliado. 3. **Preencha as credenciais** (cada loja tem um guia próprio dizendo o que colar — veja a tabela no fim). 4. Informe o **tracking ID padrão** (o seu identificador de afiliado). 5. Clique em **Validar** para testar e depois em **Salvar**. Pronto! A partir daí o bot já reconhece e converte os links daquela loja sozinho — você **não precisa configurar mais nada**. > **A validação** confere se a sua credencial funciona, buscando os seus programas/produtos na rede — não precisa de link de teste. Se aparecer um aviso de checagem pulada, é normal e não impede o uso. Em telas menores, o próprio editor de conta rola até os botões **Validar** e **Salvar**. ## O que cada loja pede (referência rápida) | Provider | Campos principais | Obs. | |---|---|---| | **AliExpress** | `appKey`, `appSecret` | + tracking ID (PID) | | **Amazon (PA-API)** | `accessKeyId`, `secretAccessKey`, `partnerTag` | Seletor "Fonte dos dados" = PA-API. Região/marketplace pré-configurados para BR | | **Amazon (Creators)** | `credentialId`, `credentialSecret`, `partnerTag` | Seletor "Fonte dos dados" = Creators API. Versão 2.1 pré-configurada | | **Amazon (Gerenciado)** | `partnerTag`, `cookie` | Usa cookie de sessão para validar | | **Shopee** | `appId`, `secret` | | | **Awin** | `publisherId`, `accessToken`, `countryCode` | Lojas (advertisers) importadas automaticamente ao salvar | | **Rakuten** | `SID`, `App ID`, `App Secret` | Token gerado automático. Lojas importadas automaticamente ao salvar | | **CityAds** | `clientId`, `clientSecret`, `remoteAuth` | Sync automático de lojas BR. Gera deeplinks | | **Magalu** | `promoterId` (detectado via link) | Cole um link de afiliado seu — o ID é detectado automaticamente | | **Mercado Livre** | `tag`, `cookie` | | | **Terabyte** | `p` (ID afiliado), `utmMedium`, `utmCampaign` | | | **Pague Menos** | `consultorCode` | Só o código do consultor; o resto é automático | | **Braé** | `parceiro`, `cupom` (opcional) | | | **Beleza na Web** | `utmCampaign` (código do consultor), `cupom` (opcional) | utm_source/medium/content fixos | | **Natura** | `consultoria`, `cupom` (opcional) | | > Você **nunca** precisa configurar rotas na mão — ao salvar qualquer plugin, os links daquela loja já passam a ser reconhecidos sozinhos. Awin, Rakuten e CityAds ainda puxam o catálogo inteiro de lojas da rede automaticamente. Onde pegar cada credencial está no guia de cada loja. ## Validar e testar Alguns providers permitem informar uma **URL de amostra** (ou **ID de produto**) para testar a conversão na hora. Se a validação passar, está tudo certo para converter no Telegram e na API. --- # DOC: Como assinar o Bot do Afiliado e ativar os módulos URL: https://botdoafiliado.com/docs/planos/como-assinar/ Descrição: Passo a passo para assinar o Bot do Afiliado, fazer checkout dos módulos pelo Stripe e gerenciar sua assinatura (trocar módulos, atualizar cartão, cancelar). A assinatura é **por workspace** e **a la carte**: você paga o plano base e adiciona os módulos que quiser. O pagamento é feito de forma segura pelo **Stripe**. ## Assinar 1. No painel, abra a página **Assinaturas**. 2. O **plano base** já vem marcado (é obrigatório). Marque os **módulos extras** desejados. 3. Confira o total e clique em **Assinar** para abrir o pagamento no **Stripe**. 4. Conclua o pagamento. Os módulos são **ativados automaticamente** no seu workspace. Tela de Faturamento com o plano base e os módulos marcados e o botão para gerar o checkout no Stripe ## Carregamento dos planos (correção em preparação) Ao entrar em Assinaturas, o bot selecionado é sincronizado com a organização da conta. Se os planos não carregarem, a tela oferece **Tentar novamente**. O valor e o botão de pagamento só aparecem depois que o catálogo estiver disponível. Esta correção foi testada localmente e ainda aguarda publicação. ## Assinatura por indicação (em preparação) Ao chegar por um link válido do IndicaSaaS, a integração preserva a indicação durante a navegação e o login para acompanhar a nova assinatura no checkout. O prazo segue as regras do programa, contadas a partir do clique original. Trocar os módulos de uma assinatura existente mantém sua indicação anterior. Cadastro, teste gratuito e abertura do checkout não contam como venda atribuída. A confirmação depende de um pagamento elegível recebido pelo IndicaSaaS. Esta integração está preparada localmente; publicação e abertura do programa ainda estão pendentes. ## Gerenciar a assinatura Use **Gerenciar assinatura** no painel para abrir o **portal do Stripe**, onde você pode: - **Trocar módulos** (adicionar ou remover). - **Atualizar o cartão**. - **Cancelar** a assinatura. Ainda em dúvida sobre qual módulo ativar? Veja **[módulos e preços](/docs/planos/modulos/)**. --- # DOC: Solução de problemas comuns do Bot do Afiliado URL: https://botdoafiliado.com/docs/referencia/solucao-de-problemas/ Descrição: Resolva os problemas mais comuns do Bot do Afiliado — bot que não responde, token já cadastrado, link que não converte e validação de plugin que falha. Os problemas mais comuns e como resolver rápido. Se nada funcionar, fale com **[contato@botdoafiliado.com](mailto:contato@botdoafiliado.com)**. ## O bot não responde 1. **Token correto?** Reenvie o token do BotFather no painel. 2. **Bot certo?** Confirme que está falando com o `@username` correto no Telegram. 3. **Workspace certo?** Verifique se o bot foi criado no workspace que você está usando. ## Token já cadastrado / ID não bate - Cada **token** só pode estar em **um** bot/sub-bot. Gere um novo no BotFather ou remova o token do outro local. - Se o **ID do token não bate**, você colou o token de outro bot — use o do bot certo. ## Link não converte - Confira se o **plugin** da loja está **ativo** e se há **rota** para o domínio. - Confirme as **credenciais** do provider. - Para redes (Awin/Rakuten), configure o **advertiserId** na rota. - Veja **[Loja não mapeada](/docs/integracoes/loja-nao-mapeada/)**. ## Validação de plugin falha - Credenciais corretas e **ativas** no portal do programa? - Você tem **acesso à API** (ex.: PA-API da Amazon exige vendas qualificadas)? - O **JSON** está bem formado? ## Mercado Livre parou de converter - O **cookie** de sessão pode ter expirado. **Atualize o cookie** nas credenciais do plugin **[Mercado Livre](/docs/integracoes/mercado-livre/)**. --- # DOC: Comandos do Bot Afiliado no Telegram: a lista completa URL: https://botdoafiliado.com/docs/telegram/comandos/ Descrição: Referência dos comandos do Bot do Afiliado no Telegram — conversão, ofertas, cupons, pesquisa no AliExpress, histórico, encurtador e comandos de administrador. Esta é a referência dos comandos. A disponibilidade pode variar conforme os **módulos ativos** e a **configuração** do bot. Para a operação do dia a dia, lembre que **enviar um link já converte automaticamente** (veja **[conversão automática](/docs/telegram/conversao-automatica/)**). No painel, na aba **Comandos**, você escolhe **quais comandos aparecem no menu** do Telegram (o "/" e o botão de menu): Aba Comandos do painel: lista de comandos do Telegram com checkboxes para mostrar ou esconder cada um no menu ## Conversão e utilidades | Comando | O que faz | |---|---| | `/start` | Mensagem de boas-vindas (com foto opcional). | | `/converter ` | Converte todos os links de um texto, substituindo pelas versões de afiliado. | | `/historico ` | Histórico de preços (atualmente para Mercado Livre). | | `/soencurtar ` | Apenas encurta, sem converter. Pode exigir habilitação. | | `/adicionargrupo` | Mostra o link para adicionar o bot a um grupo. | ## AliExpress (descontos e pesquisa) | Comando | O que faz | |---|---| | `/moedas ` | Gera o link de **moedas** (desconto) do produto no AliExpress. Também funciona **respondendo** uma mensagem que já tenha o link. | | `/addcarrinho ` | Gera link de adicionar ao carrinho. | | `/promo ` | Gera vários links promocionais do produto (moedas, relâmpago, super ofertas, combo). | | `/pesquisar ` | Pesquisa o produto com **super desconto** (moedas) no AliExpress. | | `/pesquisarcombo ` | Pesquisa ofertas em **combo**. | | `/pesquisachoice ` | Pesquisa produtos **Choice** (envio rápido). | | `/pesquisabrasil ` | Pesquisa produtos **enviados do Brasil**. | | `/pesquisarmagalu ` | Pesquisa produtos da loja Magalu no AliExpress. | | `/pesquisaralinomagalu ` | Pesquisa loja AliExpress no Magalu. | ## Ofertas e cupons (módulos) | Comando | Módulo | O que faz | |---|---|---| | `/oferta ` | Ofertas | Monta uma **oferta formatada** (título, preço, CTA), ordenando por preço. Aceita um **código de cupom** opcional antes dos links — ex.: `/oferta CUPOM10 link1 link2`. | | `/cupom` | Cupons | Abre o **menu de cupons**: o usuário navega por **categoria/loja** e busca (com IA) o cupom que quer. | Veja **[Ofertas](/docs/telegram/ofertas/)** e **[Cupons](/docs/telegram/cupons/)**. ## Administrador Apenas para admins do bot: | Comando | O que faz | |---|---| | `/admin` | Menu administrativo por botões no próprio Telegram. | | `/feature ` | Liga/desliga uma funcionalidade. | | `/template ` | Atualiza o template de oferta. | | `/metricas` | Métricas do dia (encurtador, broadcast). | | `/broadcast ` | Envia mensagem para os chats cadastrados (módulo Broadcast). | | `/broadcastcompin ` | Broadcast com a mensagem **fixada**. | | `/broadcaststatus ` | Status de um broadcast. | | `/broadcastcancel ` | Cancela um broadcast. | Detalhes em **[Broadcast](/docs/telegram/broadcast/)**. ## Comandos personalizados Você pode criar **comandos próprios** (resposta de texto ou ação) no painel — úteis para respostas prontas e atalhos. As respostas aceitam **[variáveis de mensagem](/docs/telegram/mensagens-e-variaveis/)**, uma **foto** anexada e **botões de link** (até 6, um por linha) que aparecem embaixo da resposta no Telegram. Um comando personalizado com o **mesmo nome de um comando padrão** (ex.: `/cupom`) tem **prioridade**: o bot responde com o **seu** comando, não com o comportamento padrão. Exceções: `/start` e os comandos administrativos (broadcast, feature, template…), que não podem ser sobrescritos. Tela Novo comando no painel: nome do comando e editor de resposta com formatação (negrito, itálico, link) --- # DOC: Conectar um número de WhatsApp no Bot do Afiliado: QR Code, PIN e grupos URL: https://botdoafiliado.com/docs/whatsapp/conectar-whatsapp/ Descrição: Como parear o número por QR Code ou PIN, importar grupos e canais automaticamente e acompanhar a conexão. ## Como o número entra O WhatsApp entra como **aparelho vinculado** — o mesmo mecanismo do WhatsApp Web. Não é número de terceiro, não é conta clonada, e o seu celular continua sendo o dono da conta. O nome que você informa ao adicionar o número permanece como identificação principal no painel. Depois de conectar, o nome do perfil do WhatsApp e o telefone pareado aparecem abaixo, sem substituir o que você cadastrou. > **Use um número dedicado à operação**, não o seu pessoal. Qualquer número que publica muito acaba recebendo denúncia de alguém, e você não quer que isso alcance o número que usa com a família. ## Caminho 1 — QR Code 1. Em **WhatsApp → Números**, clique em **Adicionar número**, dê um nome e escolha **QR Code**. 2. No celular: **WhatsApp → Configurações → Aparelhos conectados → Conectar um aparelho**. 3. Aponte a câmera para o QR na tela. Se o QR expirar ou não puder ser exibido, use a ação de gerar um novo. O painel confere a conexão a cada poucos segundos e, assim que o número conecta, busca os grupos e canais dele automaticamente. O conteúdo de pareamento aparece como imagem QR, sem precisar abrir ou copiar um link. Se a busca falhar, a tela preserva a lista anterior e oferece **Atualizar grupos e canais**. Importar a lista não ativa os destinos: escolha quais grupos e canais devem receber os envios da campanha. Grupos descobertos ficam disponíveis para seleção. O acompanhamento de entradas, saídas e saúde começa quando o grupo está vinculado a uma campanha da sua organização. Arquivar a campanha encerra esse vínculo para novas medições; pausar apenas o repasse mantém o acompanhamento. O histórico já registrado é preservado. ## Caminho 2 — PIN por telefone Serve quando você está só no celular, sem segunda tela. 1. Escolha **PIN por telefone** e digite o número com DDD. 2. O painel mostra um código. 3. No celular: **Aparelhos conectados → Conectar um aparelho → Conectar com número de telefone** e digite o código. ## Ritmo de envio O **ritmo de envio** é configurado em **WhatsApp → Campanhas**, na campanha de envio. Cada campanha mantém seu próprio intervalo, inclusive quando duas usam o mesmo número. A aba Números cuida da conexão. Quando mais de um número está marcado no mesmo grupo, o módulo escolhe a cada envio o número menos carregado. A fila continua espaçando operações do mesmo número; esse limite pode fazer o envio aguardar além do intervalo da campanha. ## Quando a sessão cai Aparelho vinculado não é eterno. A sessão cai quando você remove o aparelho no celular, o celular fica muito tempo desligado ou sem internet, você reinstala o WhatsApp, ou o próprio WhatsApp derruba. O que acontece: - o painel mostra uma faixa **"número caído desde…"** no topo; - **os outros números** marcados naquele grupo assumem os envios — o repasse não pausa; - se não sobrar nenhum número conectado no grupo, o envio **falha** e aparece em **Últimos envios** com o motivo; - você recebe **um aviso** pelo bot do Telegram e por e-mail, com a lista de grupos que ficaram sem número, e outro aviso quando o número volta. Para reconectar, é o mesmo fluxo: QR ou PIN. Grupos, fontes e substituições continuam como estavam. ## Sobre risco de bloqueio **Não existe garantia de que um número nunca será bloqueado**, e quem promete isso está mentindo. O que reduz o risco de verdade: - **número dedicado**, aquecido aos poucos; - **envio espaçado**: configure o intervalo da campanha; a fila também respeita os limites operacionais do número; - **gente que entrou porque quis** (link clicado), não número adicionado sem pedir; - **filtro apertado**: menos volume e mais relevância. Se quiser risco mínimo, use um **canal do WhatsApp** como destino: é broadcast, ninguém entra, ninguém responde. ## Reduzir quantidade ou trocar os números ativos Ao reduzir a quantidade em **Planos & Faturamento**, os números excedentes ficam **Pausados pela assinatura**. Sem uma escolha anterior, o Bot mantém os mais antigos dentro da quantidade paga. As instâncias e sessões são preservadas; a pausa não desconecta o aparelho e não apaga grupos ou configurações. Em **WhatsApp → Números a manter ativos**, o dono ou administrador pode desmarcar um número e marcar outro. Selecione a quantidade indicada e use **Salvar números ativos**. Essa troca não muda a cobrança. Se a quantidade ou a seleção mudar em outra aba enquanto você escolhe, use **Atualizar lista** e tente novamente. Sem o módulo ativo, todos ficam pausados. Ao reativar ou aumentar a quantidade, o Bot preserva a escolha anterior e preenche as vagas com os mais antigos restantes. A conexão precisa continuar válida para o número operar. Envios que falharam durante a pausa não são reenviados automaticamente; confira **Últimos envios** antes de reenviar. ## Desconectar um número Em **Números**, use **Desconectar** no card do número. Ele libera a vaga do plano; os grupos ligados só a ele param de receber até você conectar outro número neles. A quantidade contratada muda em Planos ([preço e limites](/docs/whatsapp/planos-e-limites/)). --- # DOC: API: converter links de afiliado (POST /convert-links) URL: https://botdoafiliado.com/docs/api/convert-links/ Descrição: Endpoint para converter um ou vários links de afiliado em uma requisição (batch de até 150). Parâmetros, exemplos de request e response e boas práticas. Converte **1 ou vários** links na mesma requisição, com processamento em paralelo e cache por item. - **Método:** `POST` - **Path:** `/api/v1/convert-links` - **Auth:** header `X-API-Key` (obrigatório). Para uso no navegador/site, use uma **Embed Key** (travada por domínio) com `/embed/v1/convert-links` — veja **[Script do site](/docs/api/script-do-site/)**. Links de encurtadores com verificação automática Kutt/Afilimais também podem ser resolvidos antes da conversão, inclusive em domínio próprio. O link de destino passa pelo conversor de afiliado configurado para a loja. ## Modo single (1 link) ```json { "url": "https://exemplo.com/produto", "telegram_user_id": 123 } ``` Resposta (200): ```json { "success": true, "url_original": "https://exemplo.com/produto", "url_resolvida": "https://exemplo.com/produto", "affiliate_url": "https://afiliado.com/...", "final_url": "https://encurtado.com/...", "site": "amazon", "provider": "amazon", "tracking_id": "track-xyz" } ``` ## Modo batch (vários links) ```json { "urls": [ "https://exemplo.com/produto-1", "https://exemplo.com/produto-2" ] } ``` Resposta (200) — itens individuais, sem falhar o request inteiro: ```json { "success": true, "items": [ { "ok": true, "url_original": "...", "affiliate_url": "...", "final_url": "...", "site": "awin", "provider": "awin" }, { "ok": false, "url_original": "...", "affiliate_url": null, "final_url": null, "error": "..." } ] } ``` ## Regras e boas práticas - `urls` aceita de **1 a 150** itens; a ordem de entrada é preservada. - Faça **retry apenas dos itens** com `ok: false`. - Comece com lotes de **20 a 50** URLs conforme o seu timeout. - `final_url` é a URL após a política de encurtamento (pode ser igual a `affiliate_url`). ### Links que já pertencem ao afiliado **Próxima atualização:** links de produto Amazon já atribuídos à tag configurada para a conversão podem retornar o mesmo endereço com sucesso, inclusive quando reutilizados do cache. O tracking específico do usuário, quando configurado, tem prioridade. Sem comprovação da tag correta no destino Amazon, devolver a URL de origem continua gerando `conversion_returned_source_url`. ## Exemplo (curl) ```bash curl -X POST "https://botdoafiliado.com/api/v1/convert-links" \ -H "content-type: application/json" \ -H "X-API-Key: " \ -d '{"urls":["https://www.aliexpress.com/item/100500...","https://www.amazon.com.br/dp/..."]}' ``` Para dados de produto (título/preço/imagem) use **[/product](/docs/api/product/)**. --- # DOC: Conceitos do Bot do Afiliado: workspace, bot, plugin, rota e tracking URL: https://botdoafiliado.com/docs/comecando/conceitos/ Descrição: Entenda os conceitos centrais do Bot do Afiliado — workspace, bot, plugin (conversor), rota, tracking ID e módulo — para configurar tudo com segurança. Estes são os termos que aparecem no painel e na documentação. Entender cada um deixa a configuração muito mais simples. ## Workspace É o espaço que **agrupa** seus bots, os **módulos** assinados e os **membros** da equipe. Use workspaces diferentes para separar clientes, marcas ou projetos. A assinatura (billing) é por workspace. ## Bot É a instância do **Telegram** conectada por um **token** do BotFather. Cada bot tem suas configurações: comandos, templates de mensagem, integrações e rotas. Veja **[Primeiros passos](/docs/comecando/primeiros-passos/)**. ## Plugin (conversor) É o componente que **gera o seu link de afiliado** para uma loja ou rede. Guarda as **credenciais** (`credentials_json`), o **tracking ID padrão** e uma **prioridade**. Veja **[como ativar um plugin](/docs/integracoes/ativar-plugin/)**. ## Rota Liga um **domínio** (ex.: `aliexpress.com.br`) a um conversor. Ao salvar um plugin, as rotas dos domínios dele são criadas automaticamente. Detalhes em **[como funcionam plugins e rotas](/docs/integracoes/como-funcionam/)**. ## Tracking ID É o seu **identificador de afiliado** (PID, partner tag, publisher ID, etc.), embutido no link convertido para creditar a sua comissão. Cada rede chama de um jeito — veja o **[glossário](/docs/comecando/glossario/)**. ## Módulo É um **recurso assinável** (Ofertas, Cupons, Broadcast, Grupos, Sub-bots, API, Tracking por Usuário). O **plano base** é obrigatório; os módulos são ativados sob demanda. Veja **[módulos e preços](/docs/planos/modulos/)**. --- # DOC: Como conectar o Bot do Afiliado no ChatGPT (MCP) URL: https://botdoafiliado.com/docs/ia/conectar-chatgpt/ Descrição: Adicione o MCP remoto como app personalizado no ChatGPT quando sua conta permitir e autorize o bot por login. ## Criar a conexão 1. Em **Configurações → Apps**, confira a disponibilidade de **modo desenvolvedor** e **criação de apps**. A organização pode restringir essas opções. 2. Crie um app MCP remoto usando a URL copiada de **API e IA / MCP** no [painel do Bot](https://app.botdoafiliado.com/). A URL geral é `https://app.botdoafiliado.com/mcp`. 3. Use **OAuth**, entre na **Conta do Afiliado** e confira o bot e as permissões antes de autorizar. 4. Habilite o app na conversa e peça a conversão de um link de produto. Os nomes dos menus e o acesso variam por conta. A referência atual é [Developer mode e apps MCP na documentação oficial da OpenAI](https://help.openai.com/en/articles/12584461-developer-mode-and-mcp-apps-in-chatgpt). ## Conferir o resultado Use a URL específica copiada do painel quando tiver vários bots. Consulte as ferramentas apresentadas na conexão: o [catálogo desta versão](/integracoes-ia/#ferramentas) não garante que todas já estejam publicadas ou liberadas na sua conta. O módulo **Conexão IA e API** e os módulos exigidos por cada ação precisam estar ativos. Revise o resultado antes de publicar uma oferta. Nunca envie senha, token do Telegram ou API key na conversa. --- # DOC: Como gerenciar a assinatura e trocar de módulos URL: https://botdoafiliado.com/docs/planos/gerenciar-assinatura/ Descrição: Como trocar módulos, atualizar o cartão e cancelar a assinatura do Bot do Afiliado pelo portal do Stripe, direto do painel. A gestão da assinatura é feita pelo **portal do Stripe**, acessível direto do painel. A assinatura pertence à **organização do bot selecionado**. Somente o proprietário pode gerenciá-la. ## Gerenciar 1. Selecione a organização do bot no topo e abra **Assinaturas** no rodapé fixo do menu. No celular, abra o menu de navegação para encontrar o mesmo atalho. Você também pode entrar em **Organização → Assinaturas e módulos → Gerenciar assinaturas**. 2. Clique em **Gerenciar assinatura** para abrir o **portal do Stripe**. 3. No portal você pode: - **Adicionar/remover módulos**; - **Atualizar o cartão**; - **Cancelar** a assinatura. Tela de Faturamento do painel com o botão Gerenciar assinatura (abre o portal do Stripe) ## Adicionar módulos rapidamente Você também pode marcar novos módulos na própria tela de **Assinaturas** e fazer um **checkout** adicional. Veja **[como assinar](/docs/planos/como-assinar/)** e **[módulos e preços](/docs/planos/modulos/)**. Dúvidas de cobrança? Veja o **[FAQ de cobrança](/docs/planos/faq-cobranca/)**. --- # DOC: Segurança de tokens e credenciais no Bot do Afiliado URL: https://botdoafiliado.com/docs/referencia/seguranca-e-tokens/ Descrição: Como o Bot do Afiliado protege o token do Telegram, as API keys e as credenciais de afiliado, e boas práticas para manter sua conta segura. A segurança das suas credenciais é levada a sério. Veja como cada tipo de segredo é tratado. ## Token do Telegram - É **criptografado** antes de ser armazenado. - **Não** é exibido em texto puro no painel. - Se suspeitar de vazamento, **gere um novo token** no BotFather e atualize no painel (o token antigo deixa de valer). ## API keys - Apenas um **hash** da chave é guardado — não o valor em texto puro. - O painel mostra somente o **prefixo** (ex.: `bk_xxxxxx`). - A chave completa é exibida **uma única vez**, na criação. **Revogue** chaves comprometidas (efeito imediato). Veja **[autenticação](/docs/api/autenticacao/)**. ## Sessão do portal - O token usado para renovar a sessão fica em cookie protegido, inacessível ao JavaScript. - O token de acesso existe apenas na memória da aba e é descartado ao fechá-la ou recarregá-la. - O portal usa CSP, HSTS e outros cabeçalhos para reduzir exposição a scripts e navegação insegura. ## Conexões de IA (MCP) - Uma conexão por login recebe somente as permissões exibidas e aceitas na autorização. - Ferramentas fora dessas permissões não aparecem para a IA e são recusadas pelo servidor. - Você pode desconectar um aplicativo na seção **Conexões de IA ativas** do painel. ## Credenciais de afiliado - Ficam **vinculadas ao seu workspace** e são usadas apenas pelo conversor para gerar os seus links. - Você pode **atualizar ou remover** as credenciais a qualquer momento no painel. - Compartilhe acesso ao workspace apenas com pessoas de confiança. ## Boas práticas - Use **API keys separadas** por integração e revogue as que não usa. - **Nunca** exponha tokens/keys no front-end ou em repositórios. - Mantenha o acesso ao **workspace** restrito à sua equipe. --- # DOC: Gerar posts de oferta prontos para publicar URL: https://botdoafiliado.com/docs/telegram/ofertas/ Descrição: Use o módulo de Ofertas do Bot do Afiliado para transformar links em posts formatados (título, preço, CTA) com os comandos /oferta e /converter. O **módulo de Ofertas** transforma links em **posts prontos para publicar** — com título, preço e chamada para ação — em vez de só devolver o link convertido. ## Comandos principais Quando nenhum produto pode ser montado, a resposta identifica os links e os motivos da tentativa atual. A mensagem de erro pode usar `{failures}` para incluir essa lista, inclusive em ofertas com cupom. - **`/oferta `** — monta uma oferta formatada a partir de um ou vários links, **ordenando por preço**. Você também pode responder a uma mensagem que contenha os links. - **`/converter `** — converte todos os links de um texto, substituindo pelas versões de afiliado (ótimo para reaproveitar um post de outro canal no **seu** formato). Post de oferta gerado pelo /oferta no Telegram: foto dos produtos, título, preço e link curto ## Personalização O **template da oferta** é editável, com **[variáveis de mensagem](/docs/telegram/mensagens-e-variaveis/)** como `{titulo}`, `{preco}` e `{link}`. No painel, em **Promoções → Customizar**, escolha o template (**Post de oferta**, item da lista, base da lista, rodapé) e edite o formato — as **variáveis** aparecem como botões clicáveis que entram direto no editor. Para mostrar **preço anterior riscado e preço de venda**, substitua a linha de preço do formato de 1 produto ou do item da lista por **`{linhadopreco}`**. No grupo **Linha do preço**, ajuste **De … por** e **Só preço atual** sem sair dessa tela. A linha usa o preço anterior apenas quando ele é maior que o de venda. Os formatos padrão e presets já usam essa variável; formatos que você salvou continuam iguais até você editá-los. Tela Customização do formato no painel: abas de template (Post com cupom, Post de oferta, Rodapé), variáveis clicáveis ({titulo}, {preco}, {link}) e o editor com o HTML do post Na nova tela **Formato das ofertas**, cole os links no topo para carregar os dados da loja. Se houver vários produtos, escolha qual aparece na prévia. Ao editar o formato, a mesma oferta é atualizada com seu rascunho, sem precisar salvar nem buscar o produto novamente. O botão **Salvar** aplica apenas o formato aberto; os demais rascunhos continuam marcados como não salvos. Em **Ajustar os dados da prévia**, teste preço de venda, preço anterior, cupom e parcelas. Sem links, a tela usa uma amostra. Use **Atualizar dados** para consultar a loja novamente. A prévia mostra o produto selecionado; o formato de lista é demonstrado com esse item. A consulta não publica ofertas. Preview com links reais: campo para colar um link, botão Executar e a prévia da oferta renderizada com título, preço, cupom e link de afiliado > **CTA na hora:** no `/oferta`, o texto entre **aspas** preenche a variável **`{cta}`** — ex.: `/oferta "Compre aqui 👇" link1 link2`. A chamada aparece **exatamente onde você posicionar `{cta}`** no formato; sem `{cta}` no formato, ela **não aparece**. No painel, há um campo de CTA no **[Postador de Ofertas](/docs/telegram/formatador-tempo-real/)**. ## Grade de imagens O bot pode compor de **1 a 6 imagens** de produto em uma **única imagem** (grade), deixando o post mais atraente. O fundo da grade é configurável. Ative o módulo em **[módulos e preços](/docs/planos/modulos/)**. Para cupons no post, veja **[Cupons](/docs/telegram/cupons/)**. ## Preço completo, anterior e parcelas Em **Customizar**, coloque `{linhadopreco}` no lugar da linha de preço do post. O bloco escolhe o formato conforme os dados: preço atual; De … por; preço com parcelas; ou De … por com parcelas. Sem preço anterior válido, o riscado desaparece. Sem parcelamento informado, o trecho de parcelas desaparece. Edite cada caso no grupo **Linha do preço**. Os formatos com parcelas usam `{precobase}` para reaproveitar seu formato de preço atual ou De … por, seguido de `{parcelas}`. No **Trecho das parcelas**, personalize `{quantidadeparcelas}`, `{valorparcela}`, `{juros}` e `{totalparcelado}`. Juros desconhecidos não são anunciados como “sem juros”. O preço à vista e a soma das parcelas podem ser diferentes. No Postador, você pode informar o preço anterior e as parcelas do primeiro produto, usar os dados da loja ou ocultar as parcelas. A amostra de Customizar permite testar com e sem esses dados. Formatos já salvos são preservados; use **Usar linha de preço** ou ajuste seu texto para adotar o bloco completo. ## Cupom de código ou de link Em **Promoções → Customizar → Linha do cupom**, edite **Cupom de código** e **Cupom de link**. Coloque **`{linhadocupom}`** no ponto do post em que o cupom deve aparecer: o bloco escolhe o formato de código ou de página de resgate e desaparece quando o campo está vazio. No trecho **Cupom de código**, `{cupom}` recebe o código. No trecho **Cupom de link**, `{link}` recebe o link de resgate convertido para o seu afiliado. O `{link}` do post continua sendo o produto. Na amostra, a URL aparece como foi digitada; a conversão acontece ao montar uma oferta real. Se o resgate não puder ser convertido, o bot informa o erro. Se o seu formato já tiver uma linha como `Cupom: {cupom}`, use **Usar linha do cupom** ou substitua essa linha inteira por `{linhadocupom}`. Confira a amostra e salve. Seus formatos antigos continuam iguais até você editá-los. Para listas, coloque o bloco na **Base da Lista** para mostrar o cupom uma vez. Colocá-lo no **Item da Lista** repete o cupom em cada produto; se estiver nos dois formatos, aparecerá nos dois lugares. Sem uma variável de cupom no post ou nos itens, o bot inclui a linha antes do rodapé, ou no final quando não há rodapé. No Telegram, use `/oferta CODIGO link-do-produto` ou `/oferta cupom: URL-de-resgate link-do-produto`. No Postador e na extensão, preencha **Cupom** com o código ou o link de resgate. --- # DOC: Fontes do Telegram no módulo WhatsApp: o canal que alimenta os grupos URL: https://botdoafiliado.com/docs/whatsapp/conectar-telegram/ Descrição: Uma fonte é um canal ou grupo do Telegram onde o seu bot é administrador. Veja como cadastrar, o que o bot enxerga e como desligar. ## Por que um bot O módulo não entra na sua conta pessoal do Telegram. Ele lê o seu canal através do **bot que você já cadastrou** no painel — criado por você no @BotFather, e que você remove quando quiser. Se ainda não tem bot, comece pelos [primeiros passos](/docs/comecando/primeiros-passos/). ## Passo 1 — O bot como administrador É a parte que mais gente esquece. **O bot precisa ser administrador do canal ou grupo** — sem isso ele não enxerga o que é publicado. - **Canal:** abra o canal → Administradores → Adicionar administrador → busque o username do bot. - **Grupo:** abra o grupo → Membros → Adicionar → busque o bot → promova a administrador. Não precisa dar todas as permissões: basta ele conseguir ler as publicações. ## Passo 2 — Cadastrar a fonte Em **WhatsApp → Fontes**, a lista mostra os canais e grupos em que os bots do seu workspace estão ativos. Escolha o bot e o chat e confirme. Se o canal não aparecer, publique uma mensagem nele (também cadastra) — e se mesmo assim não aparecer, quase sempre é porque o bot não é administrador ali. ## O que a fonte controla Cada fonte tem as próprias regras, descritas em [Criar campanhas](/docs/whatsapp/criar-campanha/): - **o que passa**: tudo, só com imagem, ou só com palavra-chave; - **o que nunca passa**: a lista de palavras bloqueadas; - **converter links de afiliado**: ligado por padrão; desligue se quiser o texto como está. ## O que o bot enxerga - Só **canal, grupo e supergrupo**. Conversa privada com o bot não é repassada. - Só o que for publicado **depois** de ele entrar. O Telegram não entrega o histórico. - Edições de texto e legenda ([o que chega](/docs/whatsapp/o-que-chega/)). Apagar no Telegram só chega ao WhatsApp quando o canal também está no Puxador (userbot) do Bot do Afiliado — pelo bot sozinho, o Telegram não avisa que o post sumiu. ## Desligar Em **Fontes**, remova a fonte. O bot continua administrador do canal e continua convertendo links lá; só o repasse para o WhatsApp para. --- # DOC: API: dados do produto (POST /product) URL: https://botdoafiliado.com/docs/api/product/ Descrição: Endpoint que retorna dados do produto (título, preço, imagem, moeda), o link de afiliado, o link final e o histórico de preços a partir de uma URL. Retorna **dados do produto**, o **link de afiliado**, o **link final** e o **histórico de preços** a partir de uma URL. O site/provider é detectado automaticamente. - **Método:** `POST` - **Path:** `/api/v1/product` - **Auth:** header `X-API-Key` A extração aceita o formato atual de produto do Magazine Você. Para Magalu e Terabyte, bloqueios no acesso direto podem usar uma segunda tentativa pelo proxy de extração. URLs de outras lojas com `/produto/` não são tratadas como produtos da KaBuM. No Mercado Livre, anúncios sem catálogo também são identificados no destaque do link de afiliado, com sua variação. Os produtos da seção “Para você” não substituem o produto destacado. ## Request ```json { "url": "https://shopee.com.br/...", "telegram_user_id": 123456789, "history_limit": 10, "watermark": true } ``` - `url` (obrigatório): URL do produto. - `telegram_user_id` (opcional): tracking/telemetria. - `history_limit` (opcional): limite do histórico (1 a 50; padrão 10). - `watermark` (opcional): `true` inclui `product.image_url_watermark`, a foto com a marca d'água configurada no painel (Fotos próprias → Marca d'água nas fotos). Vem `null` quando o produto não tem foto, a marca não está configurada ou a foto não pôde ser processada — o resto da resposta não muda. ## Response (200) ```json { "success": true, "url_original": "https://shopee.com.br/...", "url_resolvida": "https://shopee.com.br/...", "affiliate_url": "https://...", "final_url": "https://...", "tracking_id": "....", "site": "shopee", "provider": "shopee", "product": { "title": "Nome do produto", "price": "199.90", "price_number": 199.9, "currency": "BRL", "image_url": "https://..." }, "price_history": [ { "createdAt": "2026-05-21T12:34:56.000Z", "price": "199.90", "priceNumber": 199.9, "currency": "BRL" } ] } ``` Campos de `product.*` podem vir `null` quando não foi possível extrair. `price_history` pode ser `[]`. ## Erros - `401` — `{"success": false, "error": "invalid_api_key"}` - `400` — `{"success": false, "error": "conversion_failed"}` (sem rota/conversor elegível) Veja a tabela completa em **[erros e limites](/docs/api/erros-e-limites/)**. ## Preço anterior e parcelamento O produto pode retornar `original_price` e seu alias `old_price` para o preço anterior, além de `installments`. Campos ausentes retornam `null`; o preço anterior só é válido quando maior que o preço atual. ```json { "price": "199.90", "original_price": "299", "old_price": "299", "installments": { "count": 10, "amount": 19.99, "interest_free": true } } ``` Os valores de `amount` e `total` são em reais. `interest_free` só aparece quando a fonte informa os juros. Não calcule parcelas dividindo o preço à vista: a condição do cartão pode ter outro total. A extração depende dos dados disponíveis no marketplace; a extensão também pode capturar a condição da página aberta pelo usuário. --- # DOC: Glossário de marketing de afiliados: os termos essenciais URL: https://botdoafiliado.com/docs/comecando/glossario/ Descrição: Significado dos principais termos de marketing de afiliados usados no Bot do Afiliado — deeplink, comissão, PID, partner tag, publisher ID, advertiser ID e mais. Termos que você vai encontrar nos programas de afiliados e no painel. ## Geral - **Afiliado / Publisher:** quem divulga produtos e ganha comissão por venda/clique. - **Anunciante / Advertiser:** a loja/marca que paga a comissão. - **Rede de afiliados:** intermediária que conecta afiliados e anunciantes (ex.: Awin, Rakuten). - **Comissão:** percentual (ou valor fixo) que você recebe por venda aprovada. - **Deeplink:** link de afiliado que aponta direto para uma página específica do anunciante. - **Tracking ID:** identificador que credita a comissão para você. ## Identificadores por rede - **PID (AliExpress):** seu tracking ID no AliExpress. - **Partner tag (Amazon):** sua tag de associado (ex.: `sualoja-20`). - **Publisher ID (Awin/Rakuten):** seu identificador como afiliado/publisher na rede. - **Advertiser ID (Awin/Rakuten):** identificador do anunciante/loja específico dentro da rede (vai na **rota**). - **App ID / Secret (Shopee, AliExpress):** credenciais de API para gerar links e buscar dados. ## Métricas comuns - **Cliques:** número de aberturas do seu link. - **Conversão:** quando o clique vira venda. - **EPC (Earnings per Click):** ganho médio por clique. - **Pendente / Aprovado:** estágios da comissão até a confirmação da venda. ## No Bot do Afiliado - **Plugin / Conversor:** gera seu link de afiliado para uma loja/rede. - **Rota:** liga um domínio a um conversor. - **Módulo:** recurso assinável (Ofertas, Cupons, Broadcast, etc.). - **Workspace:** espaço que agrupa bots, módulos e equipe. Veja também os **[conceitos do produto](/docs/comecando/conceitos/)**. --- # DOC: Exemplos de prompts para gerar links e ofertas com IA URL: https://botdoafiliado.com/docs/ia/exemplos-de-prompts/ Descrição: Exemplos de prompts para usar o Bot do Afiliado dentro de uma IA via MCP — buscar produtos com filtro de preço, converter links (1 ou em lote), pegar preço/histórico e montar posts de oferta. Depois de **[conectar no Claude](/docs/ia/conectar-claude/)** ou **[no ChatGPT](/docs/ia/conectar-chatgpt/)**, é só pedir em **linguagem natural**. > 💡 **Você não precisa dizer "use o MCP" nem citar a ferramenta.** A IA entende o pedido e chama a ferramenta certa sozinha. Fale como falaria com um assistente: *"acha uns produtos de cozinha baratos na Shopee"*, *"converte esse link pra afiliado"*. ## Buscar produtos (com filtro de preço e ordenação) Peça naturalmente — combine site, faixa de preço e ordenação como quiser: > Me mostra produtos de cozinha na Shopee até R$100 > Procure "air fryer" na Amazon, do mais barato pro mais caro > Busca fone bluetooth entre R$50 e R$150 no AliExpress > Quero ver geladeiras frost free, ordena pela mais barata A IA chama `search_products`. O que dá pra combinar: - **Marketplace** — `shopee`, `aliexpress` ou `amazon`. **Se você não disser a loja**, a IA busca em **todos** os marketplaces ativos e **junta os resultados** (cada item mostra de qual loja é). - **Faixa de preço** — "até R$100", "entre 50 e 150", "acima de 200". - **Ordenação** — "do mais barato", "mais caro primeiro" ou por relevância (padrão). - **Mais resultados** — "me mostra mais" / "próxima página". Cada produto vem com **imagem** (a IA mostra a foto), **preço** e o **link de afiliado** já pronto. ## Converter um link > Converta este link em afiliado: `https://www.aliexpress.com/item/100500...html` A IA chama `convert_links` e devolve o `affiliate_url` e o `final_url`. ## Converter vários links (lote) > Converta estes links e me devolva os links finais em lista: > - `https://www.amazon.com.br/dp/...` > - `https://shopee.com.br/...` > - `https://mercadolivre.com.br/...` ## Pegar preço e dados de um produto > Qual o preço e o título deste produto? `https://shopee.com.br/...` A IA chama `get_product` e retorna título, preço, moeda, imagem e histórico. ## Montar um post de oferta pronto > Monte um post de oferta deste produto: `https://...` > Monte um post de oferta com o cupom `MEUCUPOM`: `https://...` > Monte um post de oferta com o CTA "Compre aqui 👇": `https://...` ## Ajustar o formato e as mensagens do bot (templates) A IA **lê e ajusta** dois tipos de texto: o **formato** das ofertas (oferta, cupom, rodapé por marketplace) e as **mensagens de resposta** do bot (boas-vindas, "carregando…", sucesso, entrega de link, modo inline): > Me mostra o template de oferta atual. > No rodapé do AliExpress, adiciona "⚡ Desconto de moedas só no app". > Muda a mensagem de boas-vindas (/start) para algo mais informal. A IA usa `get_template` para ler e `set_template` para salvar. **Confirme antes de sobrescrever** — um template mal escrito muda todas as ofertas/respostas. Por segurança, a IA **não** edita mensagens de **erro/permissão** nem textos de **comandos administrativos** (broadcast, feature, métricas…) — essas só no painel. A IA chama `create_offer_post`, que usa o **template de oferta do seu bot** (título, preço, cupom e link final) e devolve o **texto pronto para publicar**. Você revisa e posta. > **Dica:** sempre divulgue o **`final_url`** retornado — é a versão final (com a sua atribuição e a política de encurtamento). ## Rodar um comando do bot (`/c`, encurtar, histórico…) A IA também roda os **comandos do seu bot** (o mesmo executor do Telegram), aplicando o **template** do bot: > Roda o /c nesse link: `https://...` > Encurta esse link pra mim: `https://...` > Me mostra o histórico de preço desse produto: `https://...` A IA usa `run_command` com o comando (`converter`/`c`, `encurtar`, `historico`, `promo`…) e devolve o resultado já formatado. Comandos administrativos (broadcast, configurações) **não** ficam disponíveis por aqui, por segurança. ## Frases que funcionam (e o que a IA faz) | Você diz… | A IA faz | |---|---| | "acha air fryer barata na Shopee" | `search_products` (site shopee, ordena por preço) | | "produtos de cozinha até R$100" | `search_products` (price_max 100) | | "fone entre 50 e 150 reais" | `search_products` (price_min 50, price_max 150) | | "converte esse link" + link | `convert_links` | | "qual o preço desse produto?" + link | `get_product` | | "monta um post com o cupom X" + link | `create_offer_post` (coupon X) | | "roda o /c nesse link" + link | `run_command` (converter) | | "encurta esse link" + link | `run_command` (encurtar) | ## O que ainda não dá para fazer por aqui - **Publicar automaticamente** em canais (segue no painel/bot, por segurança). --- # DOC: FAQ de cobrança e pagamento do Bot do Afiliado URL: https://botdoafiliado.com/docs/planos/faq-cobranca/ Descrição: Dúvidas frequentes sobre cobrança do Bot do Afiliado — formas de pagamento, troca de módulos, cancelamento, segurança e por workspace. Reunimos as dúvidas mais comuns sobre **cobrança**. Para o passo a passo, veja **[como assinar](/docs/planos/como-assinar/)** e **[gerenciar assinatura](/docs/planos/gerenciar-assinatura/)**. Precisa de ajuda com um caso específico (nota fiscal, reembolso, problema no pagamento)? Fale com a gente em **[contato@botdoafiliado.com](mailto:contato@botdoafiliado.com)**. --- # DOC: Changelog do Bot do Afiliado: novidades e atualizações URL: https://botdoafiliado.com/docs/referencia/changelog/ Descrição: Novidades e atualizações do Bot do Afiliado e da documentação. Acompanhe as novidades do Bot do Afiliado e da documentação. Esta é uma página viva — atualizada conforme lançamos melhorias. ## 13/10/2026 — WhatsApp: links curtos da Amazon e do Mercado Livre no espelho - O espelho do canal para o grupo do WhatsApp não recusa mais o link curto que o próprio bot gerou na Amazon (link.amazon) e no Mercado Livre (meli.la). Antes, o post saía com "Não foi possível preparar o envio". - Link de outro afiliado continua sendo trocado pelo seu, e o que não dá para converter continua sem ir. ## 13/10/2026 — Comunidade: quatro abas - A Comunidade ficou com **Atividade**, **Proteção**, **Reputação** e **Consumo de IA**. A antiga aba Feedbacks virou o filtro **Feedbacks** da Atividade. - Na **Proteção**, você escolhe o grupo ou canal e vê tudo dele numa página: o modo de proteção, o **Porteiro** (quem entra, quem fala e o que a pessoa aceita), as permissões do bot e as pessoas do grupo. Em **Todos os grupos** ficam a punição automática, os confirmados no site e os infratores. - Os links antigos para as abas Porteiro, Mini App de entrada e Feedbacks levam ao lugar novo. ## 13/10/2026 — Reputação: voto com 👍, 👏 e 👎 - No grupo, responder a mensagem de alguém só com 👍 ou 👏 dá +1 de reputação, e só com 👎 tira 1, como o `+1` e o `-1`. Vale o emoji repetido e com tom de pele. Com texto junto ("👍 valeu"), não é voto. - O bot confirma o voto por emoji como confirma o `+1`. Quando o voto não conta (a pessoa já votou na semana ou respondeu a um bot, a um post do canal ou a si mesma), o bot não responde nada, porque muita gente responde 👍 só para dizer "ok". No `+1`, o bot continua explicando por que o voto não contou. - Em grupo com Tópicos, só conta a resposta a uma mensagem. A mensagem solta no tópico, que o Telegram entrega como resposta à abertura do tópico, não vira voto em quem abriu o tópico. Vale também para o `+1`. ## 13/10/2026 — Porteiro: cadastro no seu site para liberar as mensagens - A regra do Porteiro ganhou **O que a pessoa precisa para falar**: estar no canal (como antes), **confirmar o cadastro no seu site** ou as duas coisas. É para grupo público, que não tem pedido de entrada. - Vale só para quem entrar depois de ligar a regra. A pessoa fica pausada na 1ª mensagem (ou já na entrada, para grupo sob ataque de robôs), recebe o aviso e confirma com o e-mail ou com o Google, sem senha. A confirmação vale em todos os grupos do bot. - Novo card **Confirmados no site** na aba Comunidade e um **Link para fixar no grupo**. - No card **Confirmados no site**, o dono e os administradores veem marcadas as contas diferentes do Telegram que confirmaram com o mesmo e-mail (**E-mail em outra conta**, com o @ ou o nome da outra). Ninguém é bloqueado por isso. - Na regra **Canal e site**, quem confirma o cadastro antes de entrar no canal recebe no privado o aviso de mensagens liberadas assim que entra no canal. A mensagem do canal que falta também traz o botão **Pronto, entrei**, que confere na hora. - As páginas do seu site deixaram de carregar a medição do próprio Bot do Afiliado (Google Analytics e Pixel da Meta). - A política de privacidade explica o que guardamos de quem confirma o cadastro e o que pode ir para a Meta. ## 10/10/2026 — Cupons: cada código em destaque e Programe e Poupe na linha do cupom - Com mais de um cupom no post (`20OFFAMAZON + SKAL129LKAJ`), cada código sai no seu próprio monoespaçado, fácil de copiar. Antes, a frase inteira ficava num bloco só. Um cupom sozinho continua como era. - **Extensão 1.0.32:** produto da Amazon no Programe e Poupe com cupom sai com `CÓDIGO + Programe e Poupe` na linha do cupom, e só o código fica em destaque. Antes, a condição ia no fim do título. Sem cupom, a condição continua no título. ## 10/10/2026 — Extensão 1.0.31: cupom no preço e parcelas sem juros - **Extensão 1.0.31:** o desconto do cupom lembrado da loja entra no preço quando você captura o próximo produto da mesma loja. Antes, o campo mostrava o desconto, mas o post saía com o preço sem o cupom. - Parcelado no valor da página continua **sem juros** depois do desconto do cupom, com a parcela recalculada sobre o preço com cupom (10x de R$ 20,00 vira 10x de R$ 16,00 com 20% de cupom). Parcelamento com juros e preço digitado à mão continuam sem parcelas. - Amazon: o parcelamento da calculadora ("6x de R$ 29,85 sem juros, total parcelado R$ 179,00") volta a ser detectado. A Amazon arredonda a parcela para cima, e a soma não fechava com o total. ## 10/10/2026 — /oferta com link de celular da Amazon e páginas que o Mercado Livre recusa - No `/oferta`, o link que o app ou o site de celular da Amazon compartilha (`amazon.com.br/gp/aw/d/…`) é lido como o produto. Um `/oferta` com dois produtos, um deles com esse link, saía só com o outro. - Mercado Livre: link da página de Ofertas, de categoria, de cupons ou da página inicial explica que o Mercado Livre não permite link de afiliado para essas páginas, e sugere usar o link de um produto, de uma busca ou de uma loja oficial. Antes, a mensagem era "tente novamente", e repetir não resolvia. ## 10/10/2026 — Links no grupo: todo link é convertido - Em grupos, com o módulo Grupos e **Apagar link original no grupo** ligados, todo link passa pela conversão: o bot envia a versão de afiliado e apaga a mensagem original. Se a conversão falhar, a mensagem também é apagada, a não ser que o link esteja na **whitelist**. Antes, link de loja com erro na conversão ficava no grupo. - Vale também nos grupos com **Proteção da Comunidade** no modo **Automático**. Antes, nesses grupos o bot não apagava convite de outro grupo nem link sem conversão de quem era inscrito. Nos modos Observar e Desligado, nada muda. - Mensagem editada para incluir um link passa pelo mesmo caminho da mensagem nova: o bot converte, responde à mensagem e a apaga. A prévia do link, que o Telegram também manda como edição, não repete o post. Mensagem de administrador do grupo e post do canal ficam de fora. - Na whitelist, um link passa a liberar também o que está abaixo dele: `https://t.me/seucanal` libera os posts do canal (`https://t.me/seucanal/123`). ## 10/10/2026 — Fontes da campanha e criação automática de grupos - Na campanha, a aba **Fontes** lista todos os canais e grupos do Telegram em que o seu bot está, com busca e os canais primeiro. Marcar um que ainda não era fonte já o cadastra. Antes só apareciam as fontes cadastradas, e as outras ficavam escondidas em “Adicionar fonte”. - **Criar grupos automaticamente quando lotar** deixa claro que vale só para grupos de WhatsApp, e as opções de como os grupos novos nascem ficam recolhidas. - O aviso de convite do Telegram diz o nome certo da permissão: no canal, **Adicionar membros**; no grupo, **Convidar usuários por link**. ## 10/10/2026 — Cupom por link no formato de cupom, marca no /oferta e anúncios do Mercado Livre - **Extensão 1.0.30:** com cupom por link, o post sai no formato de **Cupom**, igual ao Postador: a linha de resgate entra no lugar de `{linhadocupom}`, logo abaixo do preço. Antes ia no formato de oferta, e a linha caía depois do link do produto. - No Telegram, `/oferta` e `/cupom` passam a sair com a marca d'água quando “Aplicar nas fotos das ofertas” está ligado. Antes, só o Postador, a extensão, o link colado e a API aplicavam a marca. - Links de anúncio patrocinado da busca do Mercado Livre (`click1.mercadolivre.com.br/...`) agora funcionam: o bot vai direto para o produto anunciado. ## 10/10/2026 — Prévia da extensão com a foto final - **Extensão 1.0.29:** a prévia do post mostra a **foto como ela sai**: no padrão do seu bot (fundo e grade) e, com “Aplicar nas fotos das ofertas” ligado, com a marca d'água. Antes a prévia mostrava a foto crua do produto e a formatação só acontecia no envio. - Com “Enviar com a foto do produto” desmarcado (em Postar no canal), a prévia também sai sem a foto. ## 09/10/2026 — Marca d'água nas fotos - Em **Fotos próprias → Marca d'água nas fotos**, envie o seu logo (PNG com fundo transparente fica melhor) e/ou um texto, escolha o canto, a opacidade e o tamanho, e teste na hora. - Pela API: `POST /api/v1/watermark` devolve a foto com a marca (PNG, ou a URL com `store:true`), e `POST /api/v1/product` com `watermark: true` traz `product.image_url_watermark` junto com o produto. - A mesma foto com a mesma marca não é refeita: a segunda chamada devolve a URL já pronta. - O logo pode ser **SVG** (vira PNG transparente no envio) e a seção mostra a marca **ao vivo** numa foto de exemplo, clara ou escura, ou numa foto de produto: posição, tamanho e opacidade mudam na hora, e dá para escolher o canto clicando na foto. - **Aplicar nas fotos das ofertas:** ligando essa opção na seção da marca d'água, a foto do post já sai com a marca no /oferta e /cupom do bot, no Postador e na extensão (uma marca só na imagem inteira, inclusive na grade de vários produtos). A prévia aceita também o link do produto, não só o da imagem. - **Extensão 1.0.28:** a foto trocada no produto passa a ficar salva como foto própria e volta sozinha quando o mesmo produto aparecer de novo. Antes ela valia só para aquele post. ## Magalu em preparação — 07/10/2026 - Correção para buscas e seleções do Magazine Você que passavam pela verificação da loja e geravam links sem a lista de produtos. O destino e a loja do afiliado são preservados. Alteração ainda sem publicação. ## Segurança em preparação — 07/10/2026 - Login com autenticador mantém o segundo fator após e-mail, SSO e passkey sem verificação local. - Chaves de leitura recebem convites WhatsApp mascarados. - Comandos administrativos pela API exigem chave admin ou sessão de proprietário/administrador; informar um ID Telegram não concede esse acesso. - Tokens MCP são conferidos contra destinatário e conexão vigente; tokens vinculados a uma chave não são aceitos como Bearer. - Sessões refletem suspensão, troca de senha e alteração de permissões; conexões MCP respeitam o bot autorizado. - Extensão 1.0.27 abre a composição em janela própria do Chrome; o painel deixa de guardar páginas privadas para uso offline. - Convites de equipes são consumidos uma vez; alterações no porteiro aguardam a revogação dos convites anteriores. - Edição de mídia, composição de ofertas, exportação CSV e integrações passam por validações adicionais. Estas alterações são candidatas locais, ainda sem publicação. ## 07/10/2026 — Política de privacidade com a medição do site - A [política de privacidade](/privacidade/) passa a descrever a medição do site e do painel: o Google Analytics, o Pixel da Meta, o Microsoft Clarity (que grava a sessão de navegação no site público, com o texto digitado mascarado) e os marcos da conta (cadastro, login, primeiro canal conectado, primeira oferta e pagamento), que saem do nosso servidor (para o Google com o identificador da conta; para a Meta com e-mail e nome em hash). - Ela lista como bloquear cada ferramenta. Nada disso muda o funcionamento do Bot do Afiliado. ## 01/10/2026 — Links da Rakuten voltam a abrir - Links da Rakuten (Netshoes e as demais lojas da rede) davam erro "Invalid Publisher Code" ao abrir: o link saía com o SID numérico, que a Rakuten não aceita. Agora o bot usa o ID de link da conta, que ele busca sozinho na API da Rakuten — o plugin continua pedindo só **SID + App ID + App Secret**. - Os links curtos já publicados com o ID errado foram corrigidos e voltam a levar à loja. ## 29/09/2026 — Página de cópia do cupom no WhatsApp - Nova opção na campanha: **Página de cópia no WhatsApp**. O link da loja abre uma página com o cupom e o botão **Copiar e ir para a loja**, porque no WhatsApp o texto monoespaçado do Telegram não se copia sozinho. - O clique na página conta por grupo e dispara o pixel do link de entrada da campanha, com o mesmo evento no navegador e na API de Conversões. - Na Shopee, a venda feita a partir da página volta ligada ao clique e vai para a Meta como compra. ## 26/09/2026 — Campanhas do WhatsApp com até 2.000 grupos (em preparação) - Uma campanha aceita até 2.000 grupos e chats (antes, 200). Posts, edições e "apagar para todos" das campanhas grandes entram na fila em etapas, sem se perder no meio do caminho. - O envio manual (pelo Postador ou pela própria campanha) vai para até 1.000 destinos de uma vez; acima disso, nada sai pela metade e a tela avisa. - A foto, o vídeo ou o áudio do post ficam guardados pelo Bot do Afiliado enquanto a fila envia: o grupo que recebe horas depois continua recebendo a mídia. - Links de Shopee, AliExpress, Mercado Livre e Amazon são convertidos uma vez por post e reaproveitados em todos os grupos. - Abrir uma campanha antiga não mostra mais "Alterações ainda não salvas" sem ninguém ter mexido. No celular, o nome do grupo aparece inteiro na lista da campanha. ## 26/09/2026 — Aquecimento do WhatsApp (em preparação) - **Aquecimento:** métodos próprios do Bot do Afiliado para aquecer o número escolhido, direto no cartão do número em **WhatsApp → Números**, com janela em horário de Brasília, limite diário, acompanhamento, pausa e retomada. [Como funciona](/docs/whatsapp/aquecimento/). - **Intervalo sorteado:** você define o mínimo e o máximo, e a espera até a próxima conversa é sorteada a cada envio. Até 200 mensagens por dia. - **Conversas com etapas:** a mensagem seguinte de uma conversa só sai depois da resposta, alguns segundos após ela; sem resposta em 2 horas, a conversa termina e o aquecimento segue. Toda mensagem conta no limite diário. - O progresso mostra quantos contatos responderam, quantos ficaram sem resposta e o horário do próximo envio. - Se o número cair por um momento, o aquecimento espera e retoma sozinho. Quando precisa pausar, o dono recebe um aviso e retoma de onde parou. ## 26/09/2026 — WhatsApp: admins em massa e grupos padronizados (em preparação) - **Adicionar admins:** na campanha, a aba Administrar grupos põe os outros números conectados como admins em todos os grupos dela. Cada número entra pelo link e recebe admin, um grupo por vez, com o intervalo que você escolher. - **Padronizar grupos:** nome, descrição, foto e permissões iguais em todos os grupos da campanha, com numeração que não repete a dos grupos criados sozinhos. - **Grupos criados sozinhos personalizados:** descrição, permissões e admins extras já no nascimento do grupo. - Andamento com o próximo horário e as falhas de cada grupo; dá para parar no meio. - **Só admins enviam:** padronizar com essa permissão tira do envio das ofertas, naqueles grupos, os números que não são admin, até eles virarem admin. Antes, parte dos envios ia pelo número sem permissão e falhava. - O mesmo número em lotes de várias campanhas faz uma operação de grupo por vez, com o intervalo escolhido, e nunca no mesmo segundo de um envio. ## 23/09/2026 — Comando /c: configuração gerada por IA a partir dos seus posts - **Gerar a configuração com IA:** cole até 5 posts como eles chegam e, ao lado, como você quer que saiam. A IA monta a configuração do /c e o sistema testa cada tentativa no motor real até bater com os seus exemplos, mostrando exemplo por exemplo o que bateu e o que ficou diferente. Nada é salvo antes de você conferir na Prévia. - Configuração que altera qualquer link do post é descartada: os links precisam sair intactos para virar o seu link de afiliado. - Até 5 gerações por dia em cada bot. - Posts com "-Link produto:" não saem mais com o 🛒 repetido numa linha sozinha. ## 23/09/2026 — Comando /c: prévia ao vivo e parcelas sem repetição - **Prévia:** a página do /c mostra, enquanto você edita, como o post sai no Telegram. - **Parcelas:** "Sem Juros" não vira mais "12x 12x Sem Juros" nem "10x 12x Sem Juros". - Novos campos para o prefixo do título, regras que podem ser reordenadas e rodapé com várias linhas. ## 23/09/2026 — Lojas brasileiras na Awin - **Awin:** a sincronização do Brasil também encontra programas classificados como Brazil USD, incluindo a LG BR, sem exigir outra conta ou configuração por loja. ## 22/09/2026 — Assinaturas após o login (em preparação) - Primeiro acesso seleciona corretamente o bot da organização, sem pedir um novo cadastro para quem já possui bot. - Falha ao carregar planos mostra opção de tentar novamente e não oferece assinatura com valor zerado. A ação dos avisos não sobrepõe o texto no celular. - Correções e testes locais; publicação pendente. ## 22/09/2026 — Indicação pelo IndicaSaaS (em preparação) - Referência de indicação preservada entre site, login e checkout de uma nova assinatura, com respeito ao prazo do programa. - Mudanças de módulos mantêm a indicação da assinatura existente. Cadastro e teste gratuito não contam como venda. - Código e testes locais; publicação e ativação do programa ainda pendentes. ## 22/09/2026 — Identificação e acompanhamento do WhatsApp - O cartão do número preserva o nome cadastrado como título; o nome do perfil WhatsApp aparece abaixo. - Entradas, saídas e sondagens de saúde de grupos exigem vínculo com campanha da organização. Descobrir um grupo não inicia seu acompanhamento. Campanhas arquivadas deixam de autorizar novas medições; pausar o repasse preserva o vínculo e o histórico. ## 22/09/2026 — Uso interno da IA - Uso interno da Comunidade com período definido, registro de análises e custo do provedor separado da cobrança à organização. A concessão é específica da organização e não altera preços dos clientes. - A aba Consumo identifica a modalidade e o horário final. A expiração impede novas análises automaticamente. ## 22/09/2026 — Comunidade e configurações mais claras - Lista de grupos com busca por nome e @ em Proteção, Atividade, Feedbacks e Porteiro, sem dropdown de grupos. - Histórico mais compacto, filtros adicionais e recibos expansíveis. IA não habilitada aparece como análise pausada, com o motivo também na aba Consumo. - Corrigida a falha que interrompia consultas ao Telegram e ao antispam antes de enviar a requisição. Permissões continuam sendo verificadas, sem assumir acesso. - A verificação do canal obrigatório reconhece seus nomes alternativos ativos no Telegram. - Configurações do bot concentradas em nome, Telegram e acesso. Token existente só aparece para troca; sub-bots ficam sob demanda. Conta, membros e módulos têm atalhos para suas páginas próprias. ## 22/09/2026 — Pessoas e resultados - Visão de audiência por organização, com filtros de campanha e período, origens e confiança, entradas e permanência observada nos grupos. - Origem e parâmetros de campanha preservados na entrada WhatsApp. Comissões registradas da campanha separadas de comissão individual, que depende de vínculo comprovado. ## 22/09/2026 — Teclado e estatísticas no celular - Ordenação das tabelas por Enter/Espaço e nomes acessíveis na paginação, buscas, Gerar Link e Converter. - Estatísticas WhatsApp contidas na largura do celular, com dados diários preservados para leitores de tela e aba selecionada visível ao abrir seu link. ## 22/09/2026 — Incidentes e Alertas no menu - Organização e Assinaturas ficam sempre visíveis no rodapé do menu para o proprietário, inclusive no celular. A página Organização também oferece um atalho para gerenciar assinaturas. - Incidentes e Alertas aparecem junto ao Dashboard, fora de Módulos, no desktop e no celular. São recursos do Bot, sem contratação adicional própria. ## 22/09/2026 — Campanhas e conexão WhatsApp - Campanhas com abas de destino/rastreamento e resumo/configuração/links por origem. Convite pendente permanece visível, com instruções e retentativa sem duplicar a campanha. Consulta horária mais compacta. - Links da mesma campanha para site ou grupo, com origens marcadas ou identificadas pelos sinais disponíveis. Visitas separadas de entradas, vendas e pessoas únicas. - Aba Anúncios reutiliza a conexão Meta pelo Pixel. Correções de plataforma, moeda e validação dos dados; conexões Google/TikTok e ROAS continuam pendentes. - QR Code renderizado no modal e grupos/canais buscados automaticamente, com erro recuperável. Ritmo configurado na campanha de envio. ## 22/09/2026 — Portal de proteção e consumo (em preparação) - Interface local com proteção por grupo, atividade, feedbacks e consumo. Escolha pelo nome, modos, regras e CAS; salvar um grupo preserva o comportamento dos demais. - Histórico com filtros e total no servidor, evidências e resultados separados. Descartar não desbane; a reversão usa uma ação própria com confirmação. Revisão e correção continuam disponíveis aos administradores após cancelamento do módulo. - Consumo mostra tarifas aceitas, uso entregue, reservas e tetos. Contratação, alteração de limites, integração comercial e publicação continuam pendentes; nenhum preço ou cobrança real foi criado. ## 22/09/2026 — Consumo e recuperação da Comunidade IA (em preparação) - Backend local reserva o teto de gasto antes da análise e registra consumo entregue sem duplicar mensagem/foto em retentativas. Tarifas e aceite ainda precisam da etapa comercial; nenhuma cobrança foi ativada. - Recuperação limitada de análises interrompidas preserva os recibos e impede repetir punições ou handlers de ofertas. Testes usam banco local e APIs simuladas; publicação, interface e homologação real continuam pendentes. ## 21/09/2026 — Configuração da Comunidade IA (em preparação) - Executor unificado preparado localmente: Observar suspende exclusão, banimento e aviso disciplinar; Automático reúne Porteiro, CAS e regras confirmadas pela IA. Recibos, proteção contra repetição e reversão explícita no backend testados com APIs simuladas. Interface, publicação e homologação real continuam pendentes. - Novas configurações começam desligadas e em revisão. O salvamento confere os grupos do bot e impede que uma aba antiga sobrescreva alterações mais recentes. - A configuração por grupo já é aceita pela API local. Nenhuma publicação ou mudança nos grupos reais; uso/fila, cobrança por consumo e tela de proteção seguem em preparação. ## 20/09/2026 — Comunidade IA (em preparação) - Autoria da mensagem respondida com nome e @ nas duas etapas da IA e identificação da cópia automática do canal vinculado por dados do Telegram. Ofertas oficiais com cupom/link recebem contexto próprio; respostas de membros continuam analisadas separadamente. Preparado localmente, sem publicação. - Contexto por usuário com nome, @username, mensagens recentes e registro de Infratores, vinculado pelo ID do Telegram. Disponível no candidato local; sem alteração nos grupos reais. - Nova aba para feedbacks, relatos de compra, elogios, reclamações e entusiasmo nos grupos Telegram. - Moderação contextual com regras por categoria, exclusão e banimento configuráveis, evidência e recibos separados. Reputação opcional por contribuição, com teto diário e revisão. - Testes com conversas arquivadas: ajustes na leitura da IA, na separação entre foto e print e no contexto usado para reputação. Candidato local; publicação e validação de ações em grupo real pendentes. [Como funciona](/docs/telegram/comunidade-ia). ## 19/09/2026 — Dados do Painel pela Conta do Afiliado - **Painel do Afiliado no dashboard:** comissão, vendas, cliques, conversão e a série de cliques passam a vir do vínculo entre o bot e o Painel na Conta do Afiliado. Quem já tem os dois vinculados vê os números automaticamente, sem reconectar o Painel. Isso corrige o erro "HTTP 401" que aparecia no lugar dos dados. - **Sem vínculo:** o cartão do Painel, na aba Plugins, explica como vincular em Organização (só o dono do bot). Se a organização tiver mais de um Painel vinculado, o dashboard avisa em vez de escolher um. - **Envio de cliques:** a conexão para enviar ao Painel os cliques dos links curtos continua disponível separadamente no cartão. ## 19/09/2026 — Postador e Vitrine no celular e no app - **Postador:** no celular a tela segue a ordem de uso — compor, ver a prévia do Telegram, conferir os links e só então escolher os canais e postar; o botão de postar ocupa a largura toda. O convite para instalar a extensão do Chrome só aparece em tela de computador e nunca dentro do app. - **Vitrine:** no celular cada item vira um card com foto, preço, cupom, situação e ações à vista (antes a tabela só mostrava foto e título). No computador, Editar e Excluir ficam numa linha só e preços com milhar (ex.: R$ 2.978,96) saem formatados. ## 19/09/2026 — Acesso e topo no app - O topo e o menu respeitam o espaço da barra do sistema e do recorte da tela do iPhone. - Dentro do app, o acesso por e-mail usa um código para digitar no próprio app. Se um link abrir em outro navegador e falhar, a mensagem explica como retomar o acesso. ## 16/09/2026 — Campanhas WhatsApp, redirecionador e canais - **Redirecionador por campanha:** fila com ocupação e saúde, distribuição por crescimento ou sorteio, IDs de tags e prévia do link. Cliques roteados e leituras de prévias ficam separados; robôs não criam grupos nem disparam tags. - **Canais:** cartões de seguidores e saldo aproximado em 24 horas/7 dias, com série por dia ou hora. Ausência, coleta atrasada e janela parcial não viram zero ou período completo. - **Campanhas e pausa:** entrada e encaminhamentos independentes, arquivamento dos dois e restauração com entrada pausada. Assinatura pausada preserva números e evita consultas pagas; formulário intocado acompanha a leitura atualizada. ## 16/09/2026 — Incidentes, alertas e busca (próxima atualização) - **Incidentes:** página com abertos/fechados, grupo ou campanha, datas, orientações e última sonda. - **Alertas:** preferências salvas por tipo e canal, prévia do e-mail real e opção de relatório diário conforme o acesso da conta. Avisos de segurança permanecem ativos. - **Busca global:** Ctrl+K/⌘K encontra campanhas, grupos, números e incidentes no workspace selecionado, respeitando os módulos liberados. ## Setembro de 2026 — site e guias (preparado, sem publicação) - **Soluções:** cinco demos com dados fictícios, pausa e movimento reduzido; prévias identificam liberação pendente. - **Indicadores públicos:** estado indisponível preserva o isolamento dos dados de clientes, sem totais inventados. - **MCP e apps:** catálogo conferido com o código, guias atuais dos clientes, página de instalação PWA e trilha Comece por aqui. Nenhum link de loja de app sem verificação. ## 16/09/2026 — Anúncios Meta (prévia restrita) - **Anúncios Meta:** consulta de investimento, orçamento diário/vitalício e status, comparação com meta de CPL e estimativa opcional de imposto sem taxa padrão. Valores ausentes permanecem indisponíveis; moedas e períodos incompatíveis não são somados. Veja os [critérios e limites](/docs/referencia/anuncios-meta/). Implementação preparada, ainda sem publicação e restrita à validação. ## 16/09/2026 — Paridade com monitoramento de grupos (RealLead) - **Preparado localmente, ainda sem publicação:** dashboard de campanhas por hora com Hoje/24H/7D em UTC, nove cartões e tabela acessível; métricas sem evidência aparecem como indisponíveis. Atribuição ganha pedidos distintos, comissão estimada sem cancelamentos, filtros de status e Top 5 produtos/Sub IDs. “Não pago” permanece indisponível separadamente porque a origem o entrega como pendente. - **Saúde dos grupos WhatsApp:** o Bot passa a verificar, a cada 15 minutos, o link de convite de cada grupo que recebe entradas e se o grupo foi suspenso pelo WhatsApp. Convite inválido ou grupo suspenso sai da distribuição sozinho, abre um incidente e avisa o dono por e-mail e pelo bot do Telegram; quando volta, o grupo é reaberto e o aviso de recuperação sai uma vez. - **Redirecionador de entrada:** a campanha escolhe entre encher um grupo por vez (crescimento) ou distribuir entre os grupos abertos (balanceado); pode carregar Pixel da Meta, Google Analytics 4, Google Tag Manager e Tag do Pinterest na página de entrada, com evento configurável e identificador de deduplicação; e define título, descrição e imagem da prévia no WhatsApp. A busca da prévia pelo WhatsApp ou Facebook não conta como clique e é contada à parte. - **CPC Meta e CPL Real:** com o Pixel do Afiliado vinculado à mesma organização e os IDs de anúncio cadastrados na campanha, a atribuição por campanha mostra investimento, custo por clique da Meta (gasto ÷ cliques), CPL Real (gasto ÷ saldo positivo de entradas menos saídas, sem comprovar retenção individual), taxa de entrada e taxa de evasão. Sem gasto conhecido, os campos ficam em branco — nunca zero. - **Webhooks de saída:** cadastre até 5 URLs HTTPS em Configurações e receba um POST assinado (HMAC-SHA256) quando um lead entra ou sai, um convite quebra, um grupo é suspenso ou recuperado, um número cai ou volta, uma campanha fica sem grupo aberto ou um envio falha. Reentrega com espera crescente por até 5 tentativas; 20 falhas seguidas pausam o webhook e avisam o dono. Faz parte do módulo Conexão IA e API. - **MCP:** seis ferramentas novas para o assistente de IA — listar campanhas, detalhe da campanha, métricas por dia ou por hora, grupos de WhatsApp, histórico de atividade e estatísticas do histórico. Só leitura; o convite completo do grupo exige permissão de escrita. - **Relatório diário por e-mail:** opcional por organização, sai às 6h (Brasília) com cliques, entradas, saídas, pedidos e comissões do dia anterior por campanha, top grupos e produtos. Dia sem movimento não gera e-mail. - **Canais de WhatsApp:** número de seguidores coletado de hora em hora, com série por dia ou por hora e novos seguidores no período. ## 16/09/2026 — Campanhas e WhatsApp - **Campanhas independentes no WhatsApp:** aba própria com entrada nos grupos, fontes, filtros de conteúdo e encaminhamentos por campanha. Links e grupos de entrada são separados dos destinos de conteúdo; é possível operar somente captação ou somente repasse. Pausas independentes e arquivamento preservam o histórico. - **Campanhas de repasse WhatsApp:** múltiplas fontes e destinos por campanha, regras e substituições próprias, pausa, período, intervalo e histórico por campanha. Fontes existentes são preservadas até a primeira associação; envios antigos concluídos continuam como legado. - **Links e acompanhamento:** endereço personalizado para campanhas de captação, visualizações de canais separadas dos recibos e sondagem das exclusões no Telegram para revogar os espelhos recentes. - **Tráfego e campanhas:** abas para visão geral, campanhas, grupos, atribuição e configurações; gráficos diários, edição de campanha, filtros, reativação de arquivadas e acompanhamento da sincronização de vendas. Referências de anúncios não representam uma integração de gastos. - **WhatsApp:** navegação por tarefas, busca de números e destinos, filtros de envios e gráficos ampliados. Replicação permite destinos por fonte, pausa, período opcional e mídia combinada com palavra-chave. O link de captação permite selecionar grupos existentes por campanha. - **Portal:** corrige os ícones da aba do navegador. - **Blog:** restaura as ilustrações dos artigos de integração e programas de afiliados. - **Imagens dos cards:** validação da origem e dos redirects antes do download, com limites de tamanho e tempo. Imagens de fontes externas precisam passar pelo upload de mídia própria. - **Redução de números WhatsApp:** reduzir a quantidade pausa os excedentes e preserva as sessões. Dono e administrador escolhem quais manter ativos sem mudar a cobrança; a fila respeita a seleção atual, inclusive para envios já agendados. - **Interações no NerdCupons:** revelar um cupom não conta como uso. Uso, feedback e estrelas só confirmam após gravação; repetições reutilizam a mesma confirmação, e falhas permitem tentar novamente sem duplicar métricas. - **Destino do clique WhatsApp:** o link de entrada preserva o grupo escolhido; a conciliação exige esse destino e mantém a entrada apenas provável. Pré-visualizações identificáveis não entram na contagem de cliques. - **Atribuição de campanhas:** destinos compartilhados deixam de escolher uma campanha para os links das ofertas. Entradas por horário são sempre prováveis e exigem destino e organização compatíveis; convites identificados pelo Telegram continuam exatos. Veja os [critérios e limites](/docs/referencia/atribuicao-campanhas/). - **Acesso a módulos pagos:** falhas na verificação deixam de liberar recursos como Broadcast por padrão; recursos gratuitos e isenções confirmadas são preservados. - **WhatsApp por número:** escolha de 1 a 20 números, total mensal calculado por quantidade, capacidade visível na tela e recusa de conexões acima do contratado. Alterações preservam os outros módulos; a perda da assinatura bloqueia novos envios e os que ainda aguardam na fila. - **Criação de grupos WhatsApp:** falha buscando o convite preserva o grupo criado; uma resposta incerta pausa novas criações até confirmação, evitando grupos duplicados. O link de cada campanha usa seus próprios grupos automáticos e os grupos manuais. - **Módulo WhatsApp: canais e grupos que crescem sozinhos.** A sincronização passa a trazer os **canais** do número (selo *canal* em Grupos); canal marcado como destino recebe os posts como um grupo e fica fora do link de entrada. Campanha com destino WhatsApp ganha **criar o próximo grupo sozinho**: quando todos os grupos destino lotam, nasce "Nome base N" com a foto escolhida, já como destino, e o link da campanha continua o mesmo; um teto de grupos opcional (1–200) responde "grupos lotados" ao ser atingido. Documentação nova em [WhatsApp](/docs/whatsapp/comecando/). ## 2026-09 - **Preparado para publicação — Alertas de canal:** links gerados pelo painel, extensão, API e comandos passam a ser reconhecidos também quando vêm do cache. Alertas antigos saem da lista quando o mesmo bot reconhece o link; links de outros bots continuam separados. - **18/09 — Prévia da foto na extensão:** a imagem aparece inteira, na proporção original e sem margens brancas artificiais. Publicada na 1.0.24. - **17/09 — Extensão 1.0.24:** troca da foto do produto pelo ícone de upload sobre a imagem. A foto escolhida acompanha prévia, histórico, canal e vitrine; disponível na conexão com o painel. Publicada na Chrome Web Store e no site em 29/09. - **17/09 — Cupons Mercado Livre na operação Nerd Ofertas:** alternância entre contas com histórico separado, limite compartilhado e pausa ao receber recusa de acesso. Rejeição numa conta não retira cupons das demais; publicações continuam deduplicadas. - **17/09 — Amazon (preparado, ainda não publicado):** links de produto que já pertencem ao afiliado deixam de ser recusados quando o SiteStripe ou o cache reutiliza o mesmo endereço. A aceitação exige comprovação da tag configurada para a conta ou usuário da conversão. - **11/09 — Extensão 1.0.23:** parcelamento sem juros da Amazon confirmado pela tabela é preservado mesmo com divergência na soma das parcelas. O cartão ou meio exigido acompanha a oferta. Publicada junto da 1.0.24, em 29/09. - **11/09 — Extensão 1.0.22:** Mercado Livre conserva o parcelamento explicitamente sem juros ao capturar preço com cupom e recalcula as parcelas pelo valor descontado. Preços exclusivos do Pix permanecem sem parcelas. Publicada junto da 1.0.24, em 29/09. - **Cupons por site (próxima versão):** URLs de lojas preservadas ao renomear, logos personalizados nos consumidores, filtros por site na API/MCP e atualização de esgotamento sem apagar os demais dados. Ingestões antigas continuam compatíveis. Migração com preservação dos IDs e arquivamento revisado dos conflitos históricos. - **Preparado para publicação — Cupons por site:** lojas e marketplaces com domínio e logo editáveis, cadastro automático pelos plugins e escolha manual ou identificação pelo link ao salvar cupons. Cupons antigos preservados. - **Preparado para a próxima atualização — Imagem dos cupons Mercado Livre:** reaproveitamento da arte no Telegram entre reinícios, evitando uploads repetidos e mantendo o formato das mensagens. - **09/09 — Total de cupons Meli:** rodapé confere o total a cada 30 minutos e soma cada novidade publicada uma vez, sem consulta adicional antes da postagem. - **Preparado para a próxima atualização — Velocidade dos cupons Mercado Livre:** sincronização passa a gravar somente dados alterados, mantendo a conferência dos cupons e a publicação de novidades. - **Preparado para publicação — Extensão 1.0.21:** Amazon compara as modalidades visíveis do produto e captura o menor preço, incluindo Programe e Poupe. Quando a assinatura vence, sua condição acompanha cada produto na oferta, histórico e listas. Pasta descompactada fixa e [ZIP versionado](/extensao/botdoafiliado-postador-1.0.21.zip) atualizados. - **Preparado para publicação — Extensão 1.0.20:** validação das parcelas contra o preço final em todas as lojas, incluindo Pix, cupom, edição manual e histórico; “sem juros” só com indicação explícita e parcelamento recolhido por padrão. [ZIP versionado](/extensao/botdoafiliado-postador-1.0.20.zip), também disponível no endereço padrão de download. - **Preparado para a próxima atualização — Cupons Mercado Livre:** desconto fixo deixa de repetir um limite de mesmo valor na mensagem do canal; limites percentuais e valores diferentes são preservados. - **Preparado para a próxima publicação — Extensão 1.0.19:** revisão de preços e parcelas nas sete lojas; reconhecimento de “s/ juros” e da ordem das parcelas do AliExpress, correção da coluna de compra do Magalu e do “De” do Terabyte. Parcelas de outro vendedor no Mercado Livre são ignoradas; cupom com compra mínima não trava o preço da Nutella. - **Preparado para a próxima publicação — Extensão 1.0.18, Shopee:** preço bruto da API recebe Pix antes do cupom, sem repetir desconto no preço da página. O aviso de desconto exige um preço capturado, e o “Preço de” preenchido é enviado ao post nos dois modos de conexão. - **Preparado para a próxima publicação — Extensão 1.0.17, Amazon:** captura do preço principal à vista com reais e centavos separados; parcelamento preserva a declaração de juros e o total a prazo. Condições ocultas da calculadora não substituem a condição exibida. - **08/09/2026 — Resgate Mercado Livre na operação Nerd Ofertas:** acompanhamento do horário anunciado na campanha, resgate e conferência na conta antes da publicação. Cupons resgatados antecipadamente aguardam o início da validade. - **Preparado para a próxima publicação — Porteiro de canal:** avisos de bloqueio incluem “Entrar no canal” com link clicável, inclusive em mensagens personalizadas. O envio alternativo sem HTML também mantém a URL. - **10/09/2026 — Resgates Mercado Livre (preparado, ainda não publicado):** preserva a agenda após reinício ou retirada da página, reconfere respostas inconclusivas e recupera cupons confirmados depois, respeitando a validade e a deduplicação. Timeout de resgate deixa de pausar todos os códigos. - **Mercado Livre:** links corretos de anúncios sem catálogo deixam de ser recusados por comparação com um produto da seção “Para você”. A leitura usa o destaque e preserva a variação do anúncio, sem trocar a etiqueta quando o destino está correto. - **Links e ofertas:** correção de encurtadores Kutt/Afilimais, extração atualizada do Magazine Você e fallback de acesso para Magalu/Terabyte. Links da Terabyte deixam de consultar produtos da KaBuM com o mesmo número de anúncio. Erros de `/oferta`, com ou sem cupom, deixam de repetir links antigos e mostram a falha da tentativa atual. - **08/09/2026 — Cupons Mercado Livre:** cupom sem código deixa de ser cadastrado e publicado quando não é possível gerar o link da campanha. O link genérico de reserva não garante esse desconto. - **WhatsApp:** QR code ou código de pareamento, opção de tentar novamente e exibição do nome e telefone da conta conectada quando disponíveis no gateway. - **Formato das ofertas:** links reais no topo, escolha do produto e prévia acompanhando o rascunho; ajustes avançados recolhidos. O Postador recomenda a extensão oficial para Chrome. - **Personificação:** retorno à conta original ao terminar a hora, sem perder o aviso durante a renovação e sem encerrar as sessões legítimas do cliente. - **Configurar plugins:** os formulários recuperam os ajustes salvos ao reabrir. Magalu exibe o promoterId, inclusive de configurações antigas; trocar de bot abre os dados desse bot. - **Segurança:** proteção do editor HTML e do portal antigo, isolamento de mídia privada e notificações, tratamento de cookies inválidos e atualização de dependências. - **Vitrines Magalu:** links da página inicial da loja passam pelo identificador configurado no bot e pelo encurtador. Corrigido o reaproveitamento de resultados antigos de “sem rota” no Magazine Você. - **Magalu:** retirada a loja padrão dos cadastros. “Ler tags” detecta o identificador quando o link o informa e pede preenchimento quando ele traz só o promoter ID. Vitrines com a configuração padrão incorreta deixam de ser convertidas; o cache antigo é ignorado. - **Credenciais de afiliado:** Amazon, Natura, Braé, Beleza na Web, Pague Menos e Terabyte exigem os dados da sua própria conta. Removidos valores e exemplos de contas do operador; campos vazios geram orientação de configuração. - **Login e troca de conta:** o painel passa a concluir o acesso com a conta escolhida na Central. Corrigidos o reaproveitamento da sessão anterior, o retorno ao login por organização antiga e a restauração de cache de outra conta. - **Cupons por site:** URLs de lojas preservadas ao renomear, logos personalizados nos consumidores, filtros por site na API/MCP e atualização de esgotamento sem apagar os demais dados. Ingestões antigas continuam compatíveis. Migração com preservação dos IDs e arquivamento revisado dos conflitos históricos. - **Histórico real na Central:** conversões recebidas no Bot, última importação e estado da sincronização automática aparecem mesmo sem recibo recente. A teia distingue conta vinculada de dados importados. - **Preparado para a próxima publicação — Porteiro de canal:** avisos de bloqueio incluem “Entrar no canal” com link clicável, inclusive em mensagens personalizadas. O envio alternativo sem HTML também mantém a URL. - **Mercado Livre:** links corretos de anúncios sem catálogo deixam de ser recusados por comparação com um produto da seção “Para você”. A leitura usa o destaque e preserva a variação do anúncio, sem trocar a etiqueta quando o destino está correto. - **Links e ofertas:** correção de encurtadores Kutt/Afilimais, extração atualizada do Magazine Você e fallback de acesso para Magalu/Terabyte. Links da Terabyte deixam de consultar produtos da KaBuM com o mesmo número de anúncio. Erros de `/oferta`, com ou sem cupom, deixam de repetir links antigos e mostram a falha da tentativa atual. - **Compartilhamento na Central.** Confirmação da última importação de conversões do Painel para o Bot, com contas, horário, quantidade e erros. Veja [contas e compartilhamento](/docs/integracoes/central-do-afiliado/). - **Próxima versão — conversão:** Natura aceita links de produto e vitrine de `minhaloja.natura.com`, usando a consultoria configurada. O resumo de falhas oferece **ver ocorrências** para abrir os domínios não mapeados. Erros internos do Mercado Livre passam a informar o detalhe disponível, com tokens removidos. - **Próxima versão — extensão:** preço no Pix do Mercado Livre deixa de receber parcelas referentes ao preço cheio. Parcelamento começa recolhido ao capturar ou carregar produtos. - **Vitrine: itens que expiram sozinhos e cupom esgotado fora do card.** Cada item aceita uma data de expiração (com atalhos +1/+3/+7 dias) e a página ganha uma **expiração padrão em dias** aplicada a todo item novo — painel, extensão, API (`expires_at`) ou Puxador. Item vencido some da página pública e fica no painel marcado **expirado**, com **Renovar**. O cupom do item é cruzado com a aba Cupons: esgotado, vencido ou inativo deixa de aparecer no card (o produto continua) e o painel avisa. - **Moedas do AliExpress: falha na conversão deixa de aparecer como sucesso.** Sem plugin AliExpress configurado ou com a conversão do link falhando, o `/moedas` informa o motivo em vez de devolver a página de moedas sem afiliado. - **Extensão 1.0.16 disponível para instalação manual.** O [ZIP da extensão](/extensao/botdoafiliado-postador.zip) inclui a captura do preço anterior e do parcelamento da página aberta, recursos que exigem essa versão. A atualização da Chrome Web Store ainda está pendente. Veja [como instalar o ZIP](/docs/comecando/extensao-chrome/). - **Linha do cupom editável para código e link.** Em **Promoções → Customizar**, ajuste os dois casos e use `{linhadocupom}` para escolher automaticamente o trecho, sem rótulo vazio quando não há cupom. A amostra aceita a URL informada; posts e listas respeitam a posição da variável e os formatos antigos são preservados. Falha ao converter o link de resgate passa a interromper a geração com erro. - **Preço completo com parcelas no formato do post.** `{linhadopreco}` escolhe os quatro casos com/sem preço anterior e parcelamento. Os formatos existentes são preservados. Postador e extensão permitem informar parcelas; a API aceita os mesmos dados por produto. A extensão 1.0.16 captura os campos na página aberta, quando disponíveis. - **Userbot: fila recuperável e publicação confirmada.** Falhas ficam visíveis, ofertas antigas podem ser carregadas e o destino aparece na aprovação. Captura com fila persistente, álbuns e proteção contra repetições; envio incerto aguarda conferência no destino. - **Preço anterior riscado na própria tela Customizar.** O grupo **Linha do preço** reúne **Só preço atual**, **De … por** e o trecho avançado. A amostra permite ajustar os preços e conferir os dois cenários; o teste com links reais usa o formato salvo e aguarda o salvamento das alterações. Os formatos padrão e presets usam a linha completa, preservando os formatos que você já salvou. No Postador, os campos passam a se chamar **Preço de venda** e **Preço anterior (riscado)**. - **Formatação das linhas de preço e das listas de produtos.** Negrito e riscado dos trechos personalizados são preservados na oferta, sem exibir as tags HTML como texto. - **Primeiro acesso ao painel.** A entrada aguarda carregar o workspace e seus bots antes de abrir a configuração inicial. Quem já tem um bot não precisa cadastrar outro quando entra em um navegador novo. - **Interações do NerdCupons (próxima versão).** Uso, feedback e estrelas ganham confirmação idempotente e limites persistentes. Revelar continua disponível se o registro falhar; o site passa a avisar quando não conseguiu gravar. O histórico é preservado sem tratá-lo como pessoas verificadas. A ativação depende da publicação coordenada dos dois serviços. - **Proteção das imagens de promo (próxima versão).** Downloads de fotos e fundos passam a aceitar apenas CDNs de marketplaces suportados e mídia própria, com limites de tamanho e tempo. Fotos externas podem ser enviadas pelo painel. - **Postador: envio acompanha a oferta atual.** Editar links, preços, cupom ou outras opções bloqueia copiar e postar até a nova prévia terminar. Respostas atrasadas e erros não liberam a oferta anterior. O botão Limpar também apaga o preço "De". - **Mercado Livre: link com destino errado deixa de aparecer como sucesso.** Se a verificação reprovar o destino e as etiquetas reserva não resolverem, o bot informa a falha. Conversões antigas que podiam guardar esse link no cache central deixam de ser reutilizadas. ## 2026-08 - **Correção de segurança nas prévias de HTML.** As telas de mensagens, promoções e broadcast agora sanitizam todo HTML antes de renderizar: preservam a formatação compatível com o Telegram e removem scripts, atributos executáveis e links inseguros. - **Puxador corrige com IA e aprende por canal, sempre com a sua confirmação.** Descreva o que saiu errado e a IA compara a origem com o resultado automático para preencher um rascunho, sem alterar links; você revisa e edita antes de salvar. Para texto, formatação, preço ou cupom, o sistema ainda calcula uma troca literal determinística, testa nas 10 conversões mais recentes daquele canal e mostra o impacto antes de aplicar. A IA não aplica regras nem cria regex sozinha. Problemas de link, mídia ou outros tipos ficam registrados para diagnóstico, sem mudar as regras: o afiliado continua sendo escolhido globalmente em **Rotas** e **Plugins**. A versão **Canal** e a versão **API** também são corrigidas separadamente, sem uma sobrescrever a outra. - **Puxar novamente as mensagens recentes de um canal.** Administradores do bot agora podem usar `/puxar @canal 5` (ou o ID numérico) para buscar posts que saíram antes da captura ao vivo. O canal precisa estar ativo no Puxador; as mensagens passam pela mesma conversão, deduplicação e fila de aprovação das ofertas novas. O padrão é 2 mensagens e o máximo é 100. - **Puxador com nova fila de aprovação.** A primeira visita agora abre direto em **Aprovação**, e a tela organiza as ofertas numa grade responsiva que não muda de lugar enquanto você decide: novidades esperam no botão **Mostrar N novas ofertas**, e decisões feitas no Telegram ou por outra pessoa deixam um marcador no card até a próxima atualização. Também chegaram filtro por vários canais, agrupamento das versões do mesmo produto, prévia fiel do Telegram com imagem ampliável, seletores independentes **Canal/API** para texto e foto e um editor com prévia lado a lado. Se uma oferta já publicada for editada no canal de origem, você escolhe entre **Atualizar o post** e **Manter como está**. - **Puxador com perfil completo por canal.** Em vez de tentar reproduzir formatos complexos com dezenas de trocas manuais, cada origem pode selecionar um dos nove perfis portados da operação antiga: Economizando com JP, Economizanderson, Ofertas Benevides, Links BR, Promo China Ofertas, Setup Humilde, Samuel Felipe, Promo Bugs ou Promotom. O perfil trata somente o texto; a conversão afiliada continua usando as **Rotas e Plugins** globais do bot conforme o domínio. Durante **Gerando links**, também dá para pré-aprovar (publica só quando terminar) ou descartar. - **Cobrança mais segura na ativação de módulos.** Antes de liberar um módulo pago, o Bot do Afiliado agora confere a assinatura diretamente no Stripe e só então aplica o acesso. - **Status do Userbot corrigido para piloto controlado.** A interface e o fluxo estão prontos, mas a infraestrutura que mantém as contas conectadas ainda passa pela validação final. Por isso, o módulo não está disponível no checkout público; a documentação agora deixa isso explícito e trata R$ 149,90/mês como preço previsto para a abertura. - **Correção: o popup de conta não prende mais o botão Salvar fora da tela.** Em janelas baixas e navegadores/WebViews sem suporte à viewport dinâmica, o editor de Plugins agora fica limitado à área visível e pode ser rolado até as ações. - **Correção: links da Awin e da CityAds não perdem mais parâmetros da loja.** O link de afiliado agora mantém o que vier na URL original, inclusive parâmetros que ativam cupom, como `?coupon=SEUCUPOM`. - **Links do `ofertou.ai` agora alimentam o Público do Painel do Afiliado.** Com a conta conectada, cada acesso ao link curto envia de forma agregada a hora, o site de origem, a região aproximada, o dispositivo e qual link recebeu o clique. O Painel não recebe IP nem identificação da pessoa. A cobertura vale para os links que passam pelo encurtador próprio; links nativos das lojas continuam dependendo dos dados que cada marketplace fornece. - **Correção: título limpo da Amazon na extensão.** A captura agora usa o nome do produto exibido na página, sem carregar junto o sufixo do título da aba, como `: Amazon.com.br: Beleza`. - **Painel mais consistente e confortável no celular.** Botões, campos, seletores, checkboxes e links de ajuda agora seguem a mesma escala visual e ganham áreas de toque maiores no celular. A tela de login e a confirmação em duas etapas usam o mesmo layout, com mensagens de erro e carregamento no lugar certo. A barra superior mostra a tela atual também em telas pequenas, a busca rápida (`Ctrl+K`/`⌘K`) separa os resultados por categoria e ações como excluir, revogar ou desconectar aparecem com o padrão visual de atenção. - **Reforço de segurança no painel, na API e nas conexões de IA.** O portal não persiste mais tokens de sessão no armazenamento da aba; a renovação fica no cookie protegido do navegador. Conexões MCP por login agora só veem e executam as ferramentas cobertas pelas permissões aceitas na autorização. Também passamos a rejeitar links de cupom que não sejam `http`/`https`, bloquear seleção inválida de workspace em vez de trocar silenciosamente de workspace e exigir autenticação no endpoint técnico de consulta do AliExpress. Cabeçalhos CSP/HSTS foram ativados no portal e nos sites. - **AliExpress: o link gerado passa a marcar a origem no destino.** Todo link de afiliado do AliExpress agora aterrissa na página do produto com o parâmetro `from=botdoafiliado` na URL — identifica que o clique veio de um link montado pelo bot, no mesmo espírito da etiqueta de atribuição do Mercado Livre. Não muda preço, comissão nem o destino do link; e se a URL já traz um `from` próprio (páginas de moedas e de campanha usam esse parâmetro), o valor original é **preservado**. - **Entrar com código de 6 dígitos, sem depender do link do email.** Na tela de login, abaixo do "Enviar link", agora tem **Receber código por email**: chega um código de 6 dígitos, você digita ali mesmo e entra. Existe porque o link do email abre no **navegador padrão do aparelho** — que muitas vezes não é onde você pediu o acesso (você pede no computador e abre o email no celular, ou o app do email abre num navegador interno) e aí o login simplesmente "não acontece". O código vale **10 minutos**, é de **uso único** e aceita no máximo **3 tentativas** antes de precisar pedir outro. As formas de entrar de sempre continuam: link por email, Google e passkey. - **Módulo novo: Userbot — a curadoria dos canais chega pronta, com os seus links.** Conecte a **sua conta do Telegram** pelo painel e escolha os **canais de promoções** que você já acompanha. Quando sai uma oferta, o bot troca **todos os links** pelos seus de afiliado, monta a mensagem **no seu formato** e te entrega para **aprovar** — no grupo de aprovação do Telegram (um tópico por canal de origem) ou na aba **Userbot** do painel, ao vivo. Nada vai ao ar sem o seu OK, e **oferta repetida** nas últimas 2 horas já chega barrada. Dá para separar o destino por **palavra-chave** ou por **quantidade de links**, e limpar o texto de cada canal com regras de substituição. Você também pode pedir para o bot **montar o post do zero**: o **título** vem da API do produto, a mensagem sai nos **seus templates** e a foto pode ser a **sua arte de promo** em vez da imagem da loja — enquanto **preço e cupom continuam vindos do canal**, que é quem sabe o valor real da promo. Ligando **Publicar na Vitrine ao aprovar**, cada oferta aprovada entra sozinha no seu site. **R$ 149,90/mês.** Detalhes em [Userbot](/docs/telegram/userbot/). *Atenção: quem entra nos canais é a sua conta pessoal — automação em conta de usuário pode levar o Telegram a limitá-la, e esse risco é seu.* - **Correção: no Magalu, a extensão usa o que está na página — inclusive a foto.** O Magalu responde **403 a qualquer leitura de servidor** desde 07/08, então quem lê o produto lá é a extensão, direto da página aberta no seu navegador. Título, preço e "de" já vinham dela, mas a **imagem** ainda era a que a API devolvia — e no Magalu isso só pode ser cache antigo, então dava para o post (e a arte) sair com a **foto de outro produto**. Agora, quando a extensão lê a página do Magalu, o dado dela vence a API em tudo. Nas outras lojas nada muda: a imagem da API continua vindo primeiro, porque lá ela costuma ser melhor que a do DOM. - **Extensão: post de lista direto das capturas.** Marque duas ou mais capturas em **Últimas capturas** e clique em **Copiar N como lista** — sai **um post só**, montado com os seus formatos **Base da Lista** e **Item da lista** (aba Customizar), levando o preço e o título de cada captura. Com um item marcado a barra some, porque aí o post é o de 1 produto (o botão **Texto** da linha). Post leva um cupom só, como no Postador: se os selecionados tiverem **códigos diferentes**, a lista sai sem cupom e o aviso aparece na hora. - **Extensão: "Últimas capturas" agora copia no seu formato.** O botão **Texto** de uma captura antiga montava a mensagem num layout fixo da extensão — nada a ver com o formato configurado na aba **Customizar** que o botão da oferta atual usa. Agora ele passa pelo mesmo motor do bot (template certo de oferta/cupom, linha de preço "de → por", gatilho) e vai para a área de transferência **já formatado** para colar no Telegram. O botão **Link** também mudou: quando aquela captura ficou sem link de afiliado (a conversão falhou na hora), ele copiava o **link cru da loja** — uma venda sem a sua tag, sem aviso nenhum. Agora ele converte na hora, guarda o link na captura e só avisa se realmente não der. - **API key agora tem nível de permissão.** Ao criar a chave no painel (aba **API e IA MCP**) você escolhe entre **Leitura** (frete, histórico de preço, cupom, template e vitrine já cadastrados), **Padrão** (leitura + tudo que gera link: `/convert`, `/convert-links`, `/product`, `/execute`, `/chat`, busca de produto, promo e vitrine) e **Total** (tudo, incluindo importar/apagar cupom, editar template e configurar o userbot). Chamada acima do nível responde **403 `insufficient_scope`** — vale também para as ferramentas de IA via MCP, que passam pelos mesmos endpoints. Assim a chave que você cola num site ou entrega para uma ferramenta de terceiro não precisa mais poder mexer no catálogo inteiro. **Chaves criadas antes continuam em Total**, sem mudança de comportamento — e dá para rebaixar qualquer uma na hora: a coluna **Nível** da lista é um seletor, e trocar não rotaciona o segredo (a integração segue funcionando com a mesma chave). Detalhes em [Autenticação na API](/docs/api/autenticacao/). - **MCP por login (OAuth) passa a respeitar o papel do membro.** Quem conecta a IA pelo login em vez de colar chave recebia acesso total ao bot, mesmo sendo **member** do workspace — dava para configurar o userbot e apagar cupom pelo conector, coisas que o mesmo usuário não faz no painel. Agora o nível do conector segue o papel: **owner/admin → Total**, **member → Padrão** (opera, não configura). ## 2026-07 - **`/moedas`: responder um link já funciona + mensagens do comando reescritas.** Agora dá para **responder** qualquer mensagem que tenha o link do produto digitando só `/moedas` — jeito natural de pedir as moedas do link que alguém acabou de mandar no grupo (antes o link tinha que vir junto do comando). As duas mensagens do comando também melhoraram: a de **como usar** era só *"Use: /moedas URL-do-produto-ali"* e agora explica que o comando gera o link que abre o produto **no app com o desconto de moedas aplicado**, mostra um exemplo pronto para copiar e avisa que **link curto** (`s.click.aliexpress.com`, `a.aliexpress.com`) e link de página de moedas também servem; a de **erro** era *"Link inválido para moedas."* e agora diz o que faltou — precisa ser link de **produto** do AliExpress, não de busca, de loja ou de outro site. Quem tinha os textos padrão recebe os novos automaticamente; se você personalizou em **Mensagens**, a sua versão é preservada. - **Correção: produto "espremido" na foto saía sem a arte de fundo branco.** Quando a foto do produto era **bem justa** — o item ocupando quase todo o quadro, com poucos pixels de margem (típico de portas, escadas, tapetes e outros itens altos e estreitos) — o bot não reconhecia o fundo do catálogo e mandava a **foto crua**, sem a montagem no quadro branco. Agora ele também analisa a **moldura fina** da imagem, que enxerga o fundo mesmo nesses casos. Fotos de ambiente (lifestyle) continuam saindo como estão, sem moldura. - **Correção: comando personalizado "cupom"/"oferta" não sequestra mais o Postador e a extensão.** Se você criasse um comando personalizado chamado `cupom` (ou `oferta`), o **Postador** e a **extensão** passavam a responder com o **texto do comando** em vez de montar o post (o post saía só com a mensagem do comando, e editar o título dava erro). Os montadores internos agora ignoram comandos personalizados — o seu `/cupom` custom continua valendo normalmente **no Telegram**, sem interferir na montagem de ofertas. - **Templates de oferta: linhas de preço e cupom totalmente customizáveis.** Três variáveis novas nos formatos de oferta/cupom (aba Customizar): **`{linhadopreco}`** — a linha do preço pronta, com template próprio para **com** e **sem** preço "De" (`format.oferta.linha_preco` / `format.oferta.linha_preco_de`, ex.: `✅ De ~R$ 4.599~ por **R$ 3.899**`); **`{linhadocupom}`** — a linha do cupom pronta, com texto próprio para cupom de **código** (`format.cupom.codigo`) e por **link** (`format.cupom.link`); e **`{precode}`** — o preço "De" cru. Cada linha se adapta sozinha: sem preço ou sem cupom, ela some do post. Vale para `/oferta`, `/cupom`, Postador e extensão. Veja exemplos em [Mensagens e variáveis](/docs/telegram/mensagens-e-variaveis/). - **Correção: rodapé do conversor saía colado na linha do link.** Quando uma **Regra** de limpeza da aba Customizar removia um trecho do fim do post (ex.: apagar o "-Anúncio" da origem), as quebras de linha em volta iam junto — e o rodapé aparecia **grudado** no link (`…ofertou.ai/xxx🚀 Mais grupos…`). Agora o rodapé é anexado **depois** da formatação, sempre num parágrafo próprio, em todos os caminhos (conversão automática, `/converter` e conversor via IA/chat). - **Dashboard: detalhes no hover + duas linhas de cliques (links curtos e redes).** Passe o mouse sobre as barras do gráfico **Conversões (30 dias)** para ver o detalhe de cada dia: links convertidos, falhas, usos de cupom e posts de oferta. E o gráfico ganhou **duas linhas de cliques por dia**, separadas de propósito porque medem coisas diferentes: a **verde** conta os cliques nos **links curtos do próprio bot** (`ofertou.ai`) — não depende de integração nenhuma, mas cobre só o que o bot encurta (**Amazon, Shopee, AliExpress e Mercado Livre não passam pelo encurtador**, então não entram nessa linha); a **âmbar** conta os cliques que as **próprias redes de afiliado** registraram, lidos do **Painel do Afiliado** (aparece quando você conecta a conta). Cada linha some sozinha quando não há dado. A linha verde vale para links **criados a partir de agora**; links antigos passam a contar assim que forem reutilizados numa nova conversão. - **Visual novo no painel e na vitrine (modo claro).** O **modo claro** do painel e da **vitrine pública** ganhou o design system do Nerd Ofertas: tipografia **Inter**, grafite no lugar do preto puro e superfícies mais suaves. O **modo escuro** continua com as tonalidades de sempre. Alterne em **Claro / Escuro / Auto** no rodapé do menu lateral. - **Comandos enxutos: `/coringa`, `/encurtar`, `/grade` e `/post` saíram do bot.** Os quatro foram removidos do Telegram e do menu de comandos (`/grade` e `/post` já não funcionavam; `/coringa` e `/encurtar` tinham pouco uso — a conversão automática e o `/soencurtar` cobrem os casos). Dica: com a prioridade dos comandos personalizados, esses nomes ficaram **livres** — você pode criar o seu próprio `/encurtar` ou `/coringa` na tela **Comandos**. Para o menu refletir a mudança, clique em **Aplicar menu** na mesma tela. - **Comandos personalizados: prioridade sobre os padrões + botões de link.** Duas melhorias na tela **Comandos**: (1) um comando personalizado com o **mesmo nome de um comando padrão** (ex.: `/cupom`) agora **vence** — o bot responde com a **sua** resposta, não com o menu convencional (exceto `/start` e comandos administrativos, que continuam protegidos); (2) a resposta pode ter **botões de link** (até 6, um por linha) — cada botão abre a URL que você definir, ótimo para "Ver ofertas", "Entrar no grupo", "Abrir site". Configuráveis junto do texto e da foto do comando. - **Mercado Livre: link gerado agora é verificado (e re-gerado com etiqueta reserva se não cair no produto).** A API de links do Mercado Livre às vezes gera um `meli.la` que **não aponta para o produto** — cai na página do seu perfil de afiliado (ex.: a lista de "listas"), o comprador não vê o produto e a prévia da oferta podia sair de **outro item**. Agora o bot **confere o destino de todo link gerado** de produto: se não bater, **re-gera automaticamente** com as suas **etiquetas reserva** (campo novo nas credenciais do plugin, separadas por vírgula — a comissão é da mesma conta) e **só guarda no cache link verificado** (antes, um link ruim ficava congelado por até 30 dias). Configure em **Plugins → Mercado Livre → Etiquetas reserva**. - **Cupons: lista ordenada pelo maior desconto + visual padronizado.** A lista do `/cupom` agora vem **ordenada do maior para o menor desconto** (18% OFF antes de 10% OFF; R$ 60 OFF antes de R$ 20 OFF) — cupom sem desconto estruturado vai para o fim. E o emoji dos itens foi **padronizado em 🏷** (antes o cabeçalho usava 🏷 e cada cupom usava 🎟). Se você personalizou o template `coupon.list.item`, nada muda; quem usa o padrão recebe o novo visual automaticamente. - **API: buscar cupons dos plugins sob demanda.** Novo endpoint **`POST /api/v1/coupons/ingest-plugins`** (autenticado pela sua chave de API) dispara a mesma busca de cupons do botão "Buscar cupons" do painel e do cron — incluindo a desativação dos cupons que saíram do feed oficial. Aceita `{"sites":["mercadolivre"]}` para limitar a um site; máximo de 1 chamada por minuto. Útil para automações e para forçar uma atualização imediata via terminal. - **Reputação: ranking e Top da semana agora premiam interação, não só votos.** O **ranking** (`/reputacao top`, aba Reputação) e o **Top da semana** postado nos grupos passam a ordenar pelo **conjunto: interação (XP) + reputação** — quem participa todo dia sobe no ranking mesmo sem receber muitos votos, e os votos dos colegas continuam somando por cima. As linhas do Top também ficaram mais completas: mostram o **nível**, o **XP** e os **pontos de reputação** de cada membro (antes só os pontos). - **Rodada de segurança: papéis, domínios próprios e credenciais.** Auditoria completa do backend com correções em oito pontos. Os principais para você: **domínio próprio** (página de chat e página da live) agora só pode ser reivindicado por quem realmente o cadastrou — nenhum outro bot consegue tomar um domínio já em uso, nem derrubar o certificado de outro ao remover o seu; **faturamento** (assinar plano e abrir o portal de cobrança) e **criar bot** ficaram restritos ao **dono** e a **admin**, como já valia no menu; **credenciais de plugin** deixaram de ser visíveis para o papel **Membro** (e o campo `remoteAuth` do CityAds passou a sair mascarado como os demais segredos). Nos bastidores, endereços configuráveis das APIs da **Amazon** agora só aceitam domínios da própria Amazon, tokens de conexões de **IA (MCP)** passaram a ter a validade verificada a cada uso, e o webhook do Telegram só aceita chamadas assinadas. Nada muda no seu dia a dia — é blindagem. - **Correção: link `meli.la` de perfil social gerava o produto errado.** Ao converter um link `meli.la` que abre o **perfil social de outro afiliado** com um produto em destaque, o bot podia gerar o link de um produto **do carrossel "Quem viu também comprou"** em vez do produto destacado (ex.: destaque era um Ryzen 5 5500 e saía um Ryzen 5 2600). Acontecia quando o destaque era um anúncio direto de vendedor (endereço `/up/…`), sem página de catálogo — o leitor pulava o destaque e pegava a primeira recomendação, que muda a cada acesso. Agora o leitor **ancora no produto em destaque** e entende também anúncios diretos; os links errados que ficaram em cache foram descartados. Quando um cupom do ML **esgota antes da data de validade** (comum nos códigos de maior apelo, como `VALEPRAMODA`), ele sumia da página oficial mas **continuava ativo no bot** até a data original — mostrando cupom morto no grupo, na vitrine e no `/cupom`. Agora cada busca de cupons (automática, 4× ao dia, ou pelo botão **Buscar cupons**) também **desativa os cupons que saíram da lista oficial**. Se o código voltar, ele reativa sozinho. Cupons cadastrados manualmente não são tocados. - **Reputação: o Histórico agora tem paginação.** A tabela de votos e ajustes da aba **Reputação** mostrava só os 50 eventos mais recentes, sem como ver os anteriores. Agora ela pagina igual ao Ranking — dá para navegar por todo o histórico de auditoria (quem votou em quem, quando e por qual origem). - **Conexões de IA: acesso antigo é encerrado a cada renovação.** As conexões de IA (Claude, ChatGPT, Cursor…) se renovam sozinhas de tempos em tempos. Até agora, a credencial **anterior** continuava valendo em paralelo por vários dias depois da renovação — se ela tivesse vazado, o acesso indevido sobreviveria. Agora cada renovação **encerra a credencial antiga na hora**. Você não precisa fazer nada: a renovação continua automática e invisível. - **Tela de autorização de IA: agora mostra para onde o acesso vai.** Ao conectar uma IA ao seu bot (Claude, ChatGPT, Cursor…), a tela de permissão passa a exibir **o endereço que vai receber o acesso** (ex.: `claude.ai`) — e o **logo/símbolo** do aplicativo só aparece quando confere com esse endereço. Como qualquer aplicativo pode se **cadastrar sozinho** com o nome e o logo que quiser, o nome na tela não é prova de nada: o destino é. Se um dia aparecer um app dizendo "Claude" mas enviando para outro endereço, você vai ver na hora. - **Conexão com o Painel do Afiliado mais robusta e transparente.** Quando o Painel está **fora do ar** ou o resumo falha, o portal agora **diz isso** (antes parecia que você nunca tinha conectado); se a conta está conectada mas **sem catálogo público**, o card explica e leva direto para criar/publicar o catálogo; e o dashboard avisa quando os números não carregam em vez de sumir. Ao **desconectar**, os números em cache somem na hora (antes podiam aparecer por até 5 min). Por baixo, a conexão já pede as **permissões novas** do Painel (à prova do futuro *enforcement* de escopos) — se aparecer o aviso "reconectar", é só clicar 1× e pronto. - **Correção: título/preço editado no Postador e na extensão agora é respeitado.** Ao **editar o título** (ou o preço) de um produto antes de postar, a edição às vezes era **descartada em silêncio** e o post saía com o valor original — acontecia principalmente com links **encurtados** (ex.: `s.shopee.com.br/…`), por uma diferença de formato na URL entre a extensão e o servidor. Agora a edição é casada corretamente e **sempre aplicada**. - **Correção: linha em branco extra na oferta (produtos da Shopee).** O nome de produtos da **Shopee** vinha com uma quebra de linha "escondida" no fim, que empurrava uma **linha em branco a mais** no meio do post. Corrigido — o título entra numa linha só. - **Grupos: link adicionado por EDIÇÃO da mensagem agora é moderado.** Antes, um membro podia mandar uma mensagem inocente e depois **editá-la para inserir um link** de terceiro, escapando da moderação. Agora o bot também verifica **mensagens editadas** em grupos e apaga o link não autorizado (módulo **Grupos**). - **Preço "De → Por" nas ofertas: nova variável `{de}` (opcional e adaptável).** Agora dá para mostrar o preço **De** (riscado) nas suas ofertas: adicione a variável **`{de}`** no template da oferta (aba **Mensagens**), ex.: `✅ {de}{preco}` → *"✅ De ~R$ 199,00~ por **R$ 149,00**"*. O valor do "De" vem **automaticamente** do preço riscado do marketplace (Amazon, Mercado Livre, Magalu, KaBuM…). O melhor: quando **não há** preço original (a loja não informa, ou é um produto sem "De"), a variável **some sozinha** — o post sai limpo só com o preço, sem sobra. O texto do "De" é personalizável no template `format.oferta.de`. No **Postador** há um campo **"Preço De"** dedicado (aplica ao 1º produto) e o campo **"Preço de"** da **extensão** também passa a valer no post — em ambos, vazio = usa o original do marketplace. - **Extensão: pega o cupom da própria página (KaBuM e Amazon) automaticamente.** Ao capturar um produto na **KaBuM** (ex.: `JULHOGAMER10`) ou na **Amazon** (ex.: `cupom: BORALEVAR`), a extensão agora **lê o cupom exibido na página** e já preenche o campo Cupom — e, se esse código estiver cadastrado no seu bot, o **desconto entra junto**. O cupom da página tem prioridade sobre o último lembrado daquela loja. - **Extensão: cupom e desconto lembrados por loja + desconto puxado do cupom cadastrado.** A extensão agora **lembra o último cupom e desconto que você usou em cada marketplace**: capturar em série na mesma loja mantém o cupom, mas ao **trocar de loja** (ex.: Shopee → KaBuM) ela **não carrega mais o cupom da loja anterior**. E quando você digita (ou reusa) um **código** de cupom que já está **cadastrado no seu bot**, o **desconto é preenchido automaticamente** (%/R$, respeitando teto e mínimo) — igual ao Postador. - **Extensão: reconhece o preço "com cupom" da Shopee (não só "no Pix com cupom").** O aviso de "preço já com cupom" (que trava o desconto) agora também entende o rótulo **"com cupom"** da Shopee — quando o preço vale com cupom e aceita parcelamento sem juros —, além do "no Pix com cupom". O valor de referência "ou R$…" (sem cupom nem desconto de pagamento) vira o "De". - **Extensão: cupom por link na prévia agora sai logo após o preço (não no fim).** Quando o cupom é um **link** de resgate, a prévia da extensão jogava a linha do cupom **no fim do post**, em vez de logo abaixo do preço como o resto do bot já fazia. Agora a extensão manda o cupom para o servidor posicionar — mesmo lugar do `/oferta` do Telegram e do Postador. - **Extensão: "preço já veio com desconto" só quando REALMENTE tem cupom/Pix.** O aviso *"Preço já veio com desconto da página — o desconto não é reaplicado"* (que trava o campo de desconto) estava aparecendo em **qualquer** produto em promoção com preço "de/por" riscado. Agora ele só aparece quando o preço mostrado **de fato inclui cupom/Pix** — pelos rótulos claros do **Mercado Livre** (bloco de cupom / "no Pix com Cupom") e da **Shopee** ("no Pix com cupom"). Em promoção comum, o campo de desconto continua liberado para você aplicar o cupom que digitou. - **Correção: cupom do Mercado Livre que começa "hoje" aparecia só no fim do dia.** Um cupom novo (ex.: um código que passa a valer no mesmo dia) tinha a data de **início** interpretada como o **fim** do dia — então ele só entrava na lista de vigentes às 23:59, praticamente invisível no único dia de validade. Agora a data de início vale a partir de **00:00 (horário de Brasília)**: o cupom aparece assim que começa. A correção se aplica sozinha na próxima busca de cupons (ou clique em **Buscar cupons** no painel para já valer). - **Shopee e Mercado Livre: o mesmo produto gera sempre o mesmo link.** Assim como já acontecia na Amazon, o encurtador da **Shopee** (`s.shopee.com.br`) e o gerador do **Mercado Livre** criam um código novo a cada geração — então reconverter o mesmo produto (ou o mesmo item vindo de formas diferentes: `meli.la`, link de vitrine, link direto…) podia devolver **links diferentes** para o mesmo destino. Agora o link é **fixado por produto + seu código de afiliado** por 30 dias: reconversões devolvem o **link idêntico**, e no Mercado Livre isso vale mesmo quando o produto chega por endereços diferentes. Bônus: a reconversão fica mais rápida (não refaz a chamada à API). *(Links de loja, cupom e campanha continuam gerando normalmente, sem cache que possa envelhecer.)* - **Extensão mais enxuta e vitrine no automático.** A extensão do Chrome ficou focada no essencial: saíram os botões de **"Gerar imagem"**, **"Publicar na vitrine"** e **"Abrir no painel"** (a geração de arte já acontece do lado do bot ao postar). Agora, **toda oferta que você posta num canal pela extensão entra sozinha na sua vitrine** — sem clique extra. E o ajuste **"Formato do cupom por link"** saiu das configurações da extensão: esse texto passa a ser definido **só no painel** (aba **Mensagens**, `format.cupom.link`), valendo para todos os caminhos. - **Amazon: o mesmo produto gera sempre o mesmo `link.amazon`.** O encurtador SiteStripe da Amazon cria um código novo a cada geração, então reconverter o mesmo produto podia devolver `link.amazon/…` diferentes (ambos válidos e com a sua tag, mas dois links). Agora o link é **fixado por produto + tag** por 30 dias — reconversões devolvem o **link idêntico**. Bônus: a reconversão fica mais rápida (não refaz o encurtamento). - **Extensão do Chrome publicada na Chrome Web Store.** A extensão **Bot do Afiliado — Postador** agora instala com **1 clique**, sem aviso de "modo desenvolvedor" e com **atualização automática**. [Instalar](https://chromewebstore.google.com/detail/bot-do-afiliado-%E2%80%94-postador/ngfhfiffemmlmnlpcolaibfagekidcaa) — veja o [guia da extensão](/docs/comecando/extensao-chrome/). - **Vitrine: logo por upload (não precisa mais colar URL).** Na aba **Vitrine**, o campo da logo virou um **upload de imagem** (JPG/PNG/WebP) — igual ao da Página da Live. A imagem é otimizada e hospedada automaticamente, com prévia e botão de trocar/remover. Antes era preciso colar a URL de uma imagem já hospedada em outro lugar. - **Cupom por link agora sai no lugar certo (junto do preço).** Quando você usa um **link** no lugar do código do cupom (ex.: "Resgate todos os cupons desta página: …"), a linha agora aparece **logo abaixo do preço** — no mesmo lugar do cupom de código — em vez de ir para o fim do post. Há uma variável `{cupom}` no template da oferta (aba **Mensagens**) para você escolher a posição; o texto do link continua editável em `format.cupom.link`. - **Correção: foto de oferta saindo em branco (produtos WebP).** Ao postar uma oferta cuja imagem do produto é **WebP** (formato comum no Mercado Livre e na Shopee), a arte saía **toda branca** — o gerador de imagem do bot não decodificava WebP. Agora a imagem é **convertida para JPEG** automaticamente antes de montar a arte, e há uma proteção extra para nunca gerar um card em branco. Vale para o Postador e para a **extensão do Chrome** (o "Postar" direto pela extensão). - **Ranking de reputação com paginação.** A tabela do ranking (aba **Reputação**) agora tem **páginas** (20 por vez) — dá para navegar por todos os membros, não só os primeiros. - **Extensão: visual do "Convertendo…" corrigido.** O texto de carregamento longo estava **estourando o botão** e aparecia cortado; agora fica curto e limpo. - **Anúncio de subida de nível mais rico.** Quando um membro sobe de nível (pelo **XP**, ganho em atividade ou compartilhando ofertas), o aviso no grupo agora mostra o **nível anterior → novo**, o **XP atual** e **quanto falta para o próximo nível** — antes era só "subiu para o nível X". Continua ligável/desligável em **Reputação → Anunciar subida de nível** e o texto é personalizável na aba **Mensagens** (template `reputation.level_up`), com os novos campos `{nivel_anterior}`, `{xp}` e `{proximo}`. - **Correção importante: link do Mercado Livre não gera mais o produto errado.** Alguns links `meli.la` de **outros afiliados** abrem numa **vitrine** do vendedor (`/social/…`) — o bot lia o **carrossel de recomendação** da página e às vezes gerava o link de **outro produto** (ex.: um link de placa de vídeo virava whey protein). Agora ele identifica o **produto promovido de verdade** (o que o link aponta) e gera o link **certo**. Se, em algum caso, não der para identificar o produto com segurança, o bot **avisa e pede o link direto** (`.../p/MLB…`) em vez de arriscar o errado. Links **diretos de produto**, **listas** e **lojas** seguem funcionando normal. - **Oferta de 1 produto: mais fotos saem na arte formatada (não na foto crua).** Quando a foto do produto **preenche o quadro** (tubo, caixa, bisnaga encostando no topo/base — muito comum na Amazon), o `/oferta` mandava a **foto original** em vez de montar a arte na proporção do post. Agora, se a foto tem **fundo utilizável** (margem limpa em um dos eixos), ela é **formatada no canvas** por encaixe (contain), com o fundo na cor detectada. Fotos "de ambiente" (lifestyle, fundo cheio) continuam indo na original. - **Amazon: o cookie do SiteStripe é testado na hora que você cola.** No plugin **Amazon**, ao colar o cookie do **SiteStripe — link.amazon**, o painel faz um **teste automático** e mostra o resultado no card **Validação**: **Cookie OK** (verde) quando está gerando `link.amazon`, ou uma mensagem clara quando o **cookie expirou** (a Amazon pediu login — é só copiar de novo, já logado) ou quando a conta **não tem loja de Associado** ativa. Antes não dava para saber se o cookie estava valendo até tentar postar uma oferta. - **Correção: dava para sair da Reputação sem salvar, achando que tinha salvado.** Na aba **Operação → Reputação**, o switch *"Sistema de reputação ativo"* fica no topo da tela, mas o único botão **Salvar** ficava lá embaixo, escondido no fim do card **Níveis** — quem ligava o switch e saía perdia a mudança **sem nenhum aviso**, e o selo do cabeçalho já mostrava *"ativa"* antes de gravar, reforçando o engano. Agora, ao mexer em qualquer configuração, aparece uma **barra "alterações não salvas"** que acompanha a rolagem, com **Salvar** e **Descartar**, e o selo do cabeçalho passa a refletir **só o que está realmente gravado**. - **Reputação separada do nível (XP).** O ganho por atividade agora vai para o **XP** (que define o seu **nível**) e a **reputação** passa a vir **só dos votos `+1`/`-1`** dos membros e do ajuste do admin. Antes tudo somava no mesmo placar e a presença atropelava o voto — quem só ficava online subia mais do que quem era reconhecido pelos colegas. Agora cada número mede uma coisa: XP é o quanto você participa, reputação é o quanto te reconhecem. - **Cupom calcula o preço sozinho no Postador.** Digitou o **código** do cupom? Se ele já está cadastrado no seu bot, o **desconto é preenchido automaticamente** e o "de/por" é recalculado na hora — respeitando o **valor mínimo** da compra e o **teto de desconto** do cupom. Cupom de **cashback** não abaixa o preço (ele volta depois da compra), então aparece como aviso em vez de virar desconto. - **Cupons do Mercado Livre no automático.** O bot passa a puxar sozinho os cupons vigentes do programa de afiliados do Mercado Livre (junto com a busca de cupons, 4× por dia), com o **link de resgate já convertido para o seu afiliado**. Basta ter o plugin do Mercado Livre ativo. - **O menu de cupons mostra o desconto de cada código.** Antes, cupons sem descrição viravam uma lista de códigos soltos, sem dizer o que cada um fazia. Agora o bot monta a descrição a partir dos dados do próprio cupom (ex.: *"R$ 50 OFF (mín. R$ 249)"*) e agrupa só os códigos que são **a mesma oferta**. - **Correção: preço acima de mil virava cupom.** No `/oferta` do Telegram, um preço escrito sem o ponto do milhar (ex.: `R$2199`) não era reconhecido como preço e acabava tratado como código de cupom. Corrigido — agora vale para qualquer valor. - **Reputação no grupo (pontos, níveis e +1/−1).** O módulo Grupos ganhou um **sistema de reputação**: membros ganham pontos ao **interagir**, votam uns nos outros **respondendo com `+1` ou `-1`** (1 voto por semana por membro — **admins votam sem limite**), sobem de **nível** com anúncio no grupo e aparecem no ranking do **`/reputacao top`**. Tudo **editável no painel** (aba **Operação → Reputação**): pesos, intervalos, faixas/nomes dos níveis e ajuste manual de pontos. Textos personalizáveis na aba Mensagens (`reputation.*`). E mais: **Top 10 da semana** postado automaticamente nos grupos, **bônus por compartilhar oferta** convertida, **`/perfil`** com card visual (imagem com nível e barra de progresso), **decaimento mensal** opcional e **alerta anti-brigada** no painel. [Saiba mais](/docs/telegram/reputacao/). - **Cupom por link em todo lugar (mesmo formato).** A linha de resgate do **cupom por link** (template `format.cupom.link`, personalizável em **Mensagens**) agora vale em **todos os caminhos**: no `/oferta` do **Telegram** (`cupom: https://...`), no **Postador em tempo real** do painel, na extensão e na **API/IA (MCP)** — antes cada caminho tinha um comportamento. A URL de resgate sai **convertida para o seu afiliado** e o post vira formato de oferta automaticamente. - **Vitrine: página de Links (estilo linktree) + cupons filtráveis por loja.** A vitrine ganhou a página **`/v/seu-slug/links`** — o seu **link na bio** de verdade: todos os seus links (grupo, Instagram, WhatsApp…) como **botões grandes com o ícone da rede**, mais atalhos para as ofertas do dia, cupons e lojas com contagem. No painel, o botão **"Copiar link da bio"** já copia esse endereço. E a página de **Cupons** ganhou **filtro por loja** (chips com o logo e a contagem de cada uma), combinando com a busca. - **Correção importante: link "escondido" em texto formatado agora converte.** Quando uma mensagem trazia o link como **hyperlink** (texto clicável, comum em posts encaminhados de canal), o bot repostava **o link original** sem converter — inclusive links de afiliado de **outra pessoa**. Agora o link é convertido para o **seu** afiliado normalmente; se a conversão falhar, sai **ERRO** — nunca mais republica o link de terceiro. - **Correção: Mercado Livre podia gerar o link de outro produto.** Um problema no cache fazia dois produtos diferentes da **mesma promoção** compartilharem o link — às vezes o link gerado abria **outro item**. Corrigido: cada produto tem seu link, e o cache antigo afetado foi descartado. - **Menos ruído nos "domínios não mapeados".** **Encurtadores** (bit.ly, meli.la, s.click, s.shopee…) e links que deram **erro momentâneo** mas já têm rota **não entram mais** na lista — só domínios realmente sem integração aparecem. - **Cupons com o logo da loja.** Os cupons importados dos plugins (Awin/Rakuten/CityAds) agora mostram o **logo da loja** na vitrine, junto do nome da categoria — visual mais reconhecível na aba de Cupons. - **Vitrine virou um site de ofertas (com páginas próprias).** A vitrine pública agora tem **páginas separadas** para **Ofertas**, **Cupons** e **Lojas** — e uma **página por loja** (ex.: `/v/seu-slug/loja/amazon`, tipo "ofertas Amazon"). Cada página tem **título, descrição e endereço próprios** (bem melhor para aparecer no Google), **trilha de navegação** (breadcrumb) e o menu do topo levando às páginas de verdade. A capa mostra os **destaques** e uma prévia de ofertas e cupons, com "Ver todas". Inclui **sitemap automático** (`/v/seu-slug/sitemap.xml`) e dados estruturados (ItemList + breadcrumb) para o buscador entender cada página. - **Preço "de" em (quase) todas as lojas.** O preço original riscado agora vem junto da extração no **Mercado Livre, AliExpress, Magalu, KaBuM e Amazon** (PA-API e Creators) — aparece no `product` da API/IA, no Postador, na extensão e alimenta o histórico de preços. Regra de segurança: só mostra o "de" quando ele é **maior** que o preço atual. - **Extensão lê a página da loja.** A captura agora também extrai **direto da página aberta** (em paralelo com a API): pega o **preço que a loja exibe** — inclusive o **já descontado com cupom** que Shopee e Mercado Livre mostram — e dá título/foto/preço em lojas sem extração própria (Magalu, Terabyte). O preço riscado da página vira o "Preço de". - **Cupom por link (página de resgate).** Colou uma **URL** no campo Cupom (no **Postador** ou na **extensão**)? O post sai no formato de oferta e ganha a linha **"🏷 Resgate todos os cupons desta página: {link}"** no final, com o link **já convertido** para o seu afiliado. O texto da linha é **customizável** na aba **Mensagens** (template `format.cupom.link`) — e também via IA/MCP. - **Vitrine repaginada (visual de site de ofertas).** A vitrine pública (`/v/{slug}`) ganhou um **novo visual profissional**: **barra de menu fixa no topo** (Ofertas · Cupons · Lojas) com botão de destaque, cabeçalho de marca com a sua cor e **ícones das redes** detectados automaticamente dos seus links (Instagram, WhatsApp, Telegram, YouTube, TikTok…). Os produtos agora mostram **badge de desconto**, **selo da loja** (Amazon, Shopee, Mercado Livre, Magalu, KaBuM, AliExpress…), quando entraram (*há 3h*) e o preço antigo riscado. Tem **busca**, **filtro por loja**, uma faixa de **🔥 Maiores descontos**, uma **aba de Cupons** (mostra os cupons ativos do bot — código copiável, desconto e loja) e rodapé com selos de confiança e o aviso de afiliação. - **Vitrine com cara de link na bio.** A vitrine pública ganhou **links estilo linktree**: o primeiro vira o **botão em destaque** no topo (ex.: "Entrar no grupo") e os demais viram a fileira de botões (Instagram, Telegram, WhatsApp…). Os cards agora mostram **"há 3h"** (quando a oferta entrou) e a página traz o aviso de afiliação no rodapé. - **Extensão: foto crua ou com template.** Na hora de gerar a imagem, escolha **com template** (quadrada ou story) ou a **foto original do produto** (sem template) — copiar e baixar funcionam nos dois casos. - **Arte de promo direto no Postador.** Cada oferta do Postador ganhou o botão **🎨 Arte**: gera a arte com o seu modelo e **usa como foto daquela oferta** na hora (entra na prévia e no post, como uma foto própria). - **Colar formatado no Telegram.** O **texto de disparo** copiado na extensão agora cola **já formatado** (negrito e riscado) no Telegram Desktop/Web — e continua saindo certo no WhatsApp. - **Arte de promo com o seu modelo do Canva.** Em **Promoções → Fotos & CTAs**, envie um fundo criado no **Canva** (1080×1080 para feed e 1080×1920 para story, com o centro livre) e escolha as cores do preço e do botão — as artes geradas pela extensão e pela API saem com a **sua identidade visual**, com botão **Testar arte** para conferir na hora. - **Shopee Live: extrair sem misturar com a fila.** Na tela da live, o botão único "Extrair e resolver" virou **dois**: **Extrair e copiar** (resolve os ids/links e copia — sem tocar na fila) e **Extrair e adicionar à fila** (pré-carrega a fila para processar depois, sem copiar). - **Postador dentro da extensão.** Depois de capturar a oferta, a extensão do Chrome agora **posta direto nos seus canais** do Telegram (modo *Entrar com o painel*): escolhe os canais autorizados, envia com a arte ou a foto do produto e confirma — sem abrir o painel. A segurança é a mesma do site: só canais que você **autorizou como destino** recebem, e o servidor recusa qualquer outro. - **Extensão do Chrome (beta).** Capture produtos **sem sair da página da loja**: o painel lateral gera o seu link de afiliado, o texto de disparo, a arte de promo e publica na vitrine ou abre o Postador com o link preenchido. Funciona em **todas as lojas** dos seus plugins — e conecta com **um clique usando o seu login do painel** (sem colar chave; a API key segue como alternativa). [Saiba mais](/docs/comecando/extensao-chrome/). - **Vitrine pública de promoções.** Nova aba **Promoções → Vitrine**: publique suas ofertas numa página própria (`botdoafiliado.com/v/seu-slug`) com foto, preço "de/por", **selo de desconto automático**, cupom com botão de copiar e o seu link — perfeita para o **link na bio**, com SEO pronto. Grátis para todos os bots. [Saiba mais](/docs/comecando/vitrine/). - **Arte de promo pronta.** Novo endpoint `/api/v1/promo-card` gera um **card 1080×1080 ou story 1080×1920** com foto do produto, gatilho de venda, preços, cupom e botão "compre pelo link" — usado pela extensão e disponível na API para automações. - **Foto do cupom sem corte na página da live.** Na página pública da **Shopee Live**, a foto de cupom que você envia agora aparece **inteira** — antes, imagens mais altas eram cortadas na altura. - **Script do site corrigido.** O **[Script do site](/docs/api/script-do-site/)** (converte os links do seu site automaticamente com uma Embed Key) tinha parado de carregar em alguns endereços — foi corrigido e o snippet documentado volta a funcionar. Também blindamos a **Página de Chat embutida** (iframe e bolha) contra mudanças de segurança da infraestrutura: o widget continua funcionando nos sites dos clientes. - **Canal de segurança (security.txt).** Publicamos o padrão **RFC 9116** em `/.well-known/security.txt`: pesquisadores de segurança agora têm um canal oficial para reportar vulnerabilidades de forma responsável. - **Referência da API mais completa.** A [referência interativa (Scalar)](/docs/api/referencia/) agora abre com um **guia de início rápido** (3 passos + exemplo cURL), cada seção traz **link direto para o guia correspondente** na documentação, e os exemplos de código saem em **cURL por padrão** (com seletor para JavaScript, Python, PHP e outros). A [visão geral da API](/docs/api/visao-geral/) ganhou a **tabela completa de endpoints** por seção — incluindo os novos `product/history`, `amazon-prices`, `execute` (post de oferta pronto) e a família de **cupons**. - **`product` devolve mais dados.** O endpoint de produto (API e IA/MCP) agora retorna também **estoque/disponibilidade** e **preço "de"** (riscado) quando o marketplace fornece, além de descrição, loja e faixa de preço — os mesmos dados alimentam o histórico de preços. - **Overlay para OBS na Shopee Live.** O módulo **Shopee Live** ganhou um **overlay para a sua transmissão**: adicione a URL como *Fonte de Navegador* no **OBS** e uma **faixa transparente** mostra ao vivo os **produtos da live** passando na tela, com **foto, nome e preço**. A URL (e as **dimensões recomendadas**) ficam na tela da Shopee Live; um botão **Limpar** zera tudo antes de começar. [Saiba mais](/docs/telegram/shopee-live/#overlay-para-obs). - **Painel totalmente redesenhado.** O painel ganhou um **design system novo** — visual mais limpo com a identidade da marca, **modo escuro** de ponta a ponta, sidebar colapsável que lembra sua preferência, busca rápida com **Ctrl+K** e telas mais organizadas. Tudo que você já usava continua no mesmo lugar, só que melhor de usar (inclusive no celular). - **Canais autorizados no Postador.** Por segurança, agora você **autoriza** quais canais podem receber ofertas: no seletor de canais do Postador, clique em **Autorizar** no canal desejado (dá para remover depois). Só canais autorizados ficam selecionáveis — e o servidor recusa envio para qualquer outro. - **CTA salvo por produto.** Ao postar uma oferta de **1 produto** com CTA, a chamada fica **vinculada ao produto** e volta **sugerida** automaticamente quando ele reaparecer no Postador. A aba **Fotos próprias** virou **Fotos & CTAs**: gerencie as fotos e os CTAs salvos num lugar só — com **cadastro manual** pelo link do produto, edição e exclusão. - **Ordenação de verdade na aba Chats.** Clicar numa coluna da tabela de Conversas agora ordena a **lista inteira no servidor** (não só a página carregada) — por título, tipo, ID ou status, subindo ou descendo. - **Links da Amazon mais precisos.** A conversão passa a **preservar os parâmetros que mudam o produto/vendedor** (`th`, `psc`, `smid`, `m`, `ref`…) — a variação/loja que você mandou é a que abre — e links de **busca** da Amazon mantêm o termo pesquisado. - **Mercado Livre: links de catálogo.** Links `/p/…` (página de catálogo) agora puxam o produto certo — o bot resolve o **anúncio vencedor** do catálogo automaticamente. - **Menção inline melhorada.** Digitar **@seubot** em qualquer conversa mostra uma mensagem de divulgação que ensina a usar (personalizável em Mensagens); com um **link de produto** junto, gera a oferta ali mesmo. - **Domínio próprio sem janela pós-atualização.** As rotas dos **domínios próprios** (Página de Chat/Live) agora são recriadas **em segundos** após cada atualização do sistema — antes podiam levar até 30 minutos para voltar. - **Seletor de bots legível no modo escuro.** O dropdown nativo do seletor (e os `