Saindo do Pipedream

Atualizado em 20 de outubro de 2026

O Pipedream Workflows será encerrado em 31 de março de 2027, e toda URL …m.pipedream.net para junto com ele. Se seus workflows começam com um webhook, um agendamento ou um e-mail, o AnyHook dá a cada um uma URL que fica com você e roda suas etapas de código Node.js, a maioria como estão escritas. Você troca a URL em cada provedor uma vez, e cada workflow vira um arquivo JavaScript simples que você pode ler, guardar no git e levar com você.

ANTES · A URL É DO PIPEDREAMStripe….m.pipedream.nettermina 2027-03-31workflowexcluído 2027-04-30DEPOIS · A URL É SUAStripein.anyhook.net/you/appguarda e tenta de novoPipedreamseu códigoaté você trocarou n8n, seu servidor

O que o Pipedream está encerrando

  • O Workflows e o String param em 31 de março de 2027. O Pipedream não aceita mais novos cadastros nem assinaturas.
  • Todos os dados do Workflows são excluídos até 30 de abril de 2027, incluindo as credenciais e os tokens OAuth das contas conectadas.
  • O Pipedream Connect, com sua API, servidores MCP e proxy de API, continua.
  • A ferramenta de exportação baixa a estrutura dos seus workflows em JSON, um projeto por vez.
  • O requestbin.com agora redireciona para a página inicial do Pipedream.

Fonte: o anúncio do Pipedream.

O que vai para o AnyHook

No Pipedream

No AnyHook

Trigger HTTP
A URL de um app, in.anyhook.net/you/app. Ela responde ao remetente em cerca de um segundo, guarda cada evento e tenta de novo uma entrega com falha depois de 5 min, 30 min, 3 h e 18 h no Pro (5 tentativas no total); o Free para em 3 tentativas e o Scale continua diariamente até 10. Renomear o app não muda a URL.
Etapa de código Node.js
O código do app, rodando num sandbox a cada evento. defineComponent, $.export e $.flow.exit funcionam como estão escritos, e steps.trigger.event traz o body e os headers da requisição. Os pacotes npm que ele importa são instalados quando você salva o código, incluindo versões fixadas como "axios@1.7.9".
Ações prontas
Templates no editor de código: Slack message, Discord message, Telegram message, Email through Resend, Google Sheets row, Airtable record, Notion page, Ask Claude, Any HTTP API. Cada um tem poucas linhas que você pode ler e mudar. Ele lança um erro quando uma chamada falha, para que o AnyHook tente o evento de novo, e o template de e-mail usa o evento como chave de cada envio, então uma nova tentativa no mesmo dia não manda o e-mail duas vezes.
Trigger de agendamento
Um cron no mesmo código, em UTC ou em qualquer fuso horário, num app próprio cuja origem é generic ou auto, sem segredo de assinatura. Cada disparo chega como um evento anyhook.schedule, conta como uma execução e como um evento, e só acontece enquanto o código está ligado.
Trigger de e-mail
Todo app tem um endereço, you.app@anyhook.net. O e-mail chega como um evento email.received com o remetente, o assunto e a mensagem MIME bruta, que seu código interpreta. A origem do app precisa ser generic ou auto, sem segredo de assinatura, e e-mails maiores que o limite de payload do plano (512 KB no Free, 2 MB no Pro, 4 MB no Scale), anexos incluídos, são devolvidos.
Variáveis de ambiente e props
Segredos, lidos como env.NAME, ou process.env.NAME numa etapa. As props de uma etapa leem esses segredos sem mudar nada: this.channelId é o segredo CHANNEL_ID.
Contas conectadas
this.slack.$auth.oauth_access_token lê o segredo SLACK_OAUTH_ACCESS_TOKEN: adicione o token e a etapa roda como está escrita. Nada renova esse token, e $auth nunca lê o store, então um token que expira (os do Google duram uma hora) precisa de código que busque um novo com um refresh token guardado como segredo e mantenha o mais recente no store.
Data stores
O store do app. Toda prop data_store numa etapa é esse mesmo store, com get, set (com TTL em segundos), has, delete, keys, entries e clear; código comum o recebe como store. Ele guarda até 1.000 chaves, cada valor com no máximo 64.000 bytes em JSON, e um store do Pipedream que vários workflows compartilhavam vira um store separado em cada app. A exportação do Pipedream deixa os data stores de fora, então monte a importação você mesmo: um POST de {"entries": {key: value}} para /api/v1/apps/{slug}/store, que grava as chaves sem os TTLs.
Histórico de eventos e replay
O log de eventos: cada evento com todas as tentativas de entrega, os logs do código como resposta e um botão Replay, por 3 dias no Free e 30 no Pro. Depois, o Pro guarda o que foi recebido, em somente leitura, por 1 ano.

O que não vai junto

O AnyHook roda seu código a cada evento. Ele não é um construtor de workflows, então estes itens precisam ser reescritos ou ir para outro lugar:

  • Etapas em Python, Go e Bash. Ainda não.
  • require(). O código é um módulo ES, então uma etapa que carrega pacotes com require passa a usar import.
  • Campos do trigger além do corpo e dos cabeçalhos. O AnyHook não guarda a query string, o caminho nem o IP de quem chamou, o método é sempre POST, e um agendamento ou um e-mail chega com o corpo do próprio AnyHook, então uma etapa que lê steps.trigger.event.query, path, url ou client_ip, ou os campos do trigger de um agendamento ou de um e-mail, precisa mudar essas linhas.
  • $.send, $.flow.delay, $.flow.rerun, $.flow.suspend e $.context. Do $, uma etapa tem $.export e $.flow.exit.
  • setTtl e loops for await de um data store. Defina um TTL com set e leia tudo com keys ou entries.
  • Triggers HTTP chamados com GET ou qualquer método que não seja POST: a URL os recusa, exceto o GET de verificação da Meta.
  • $.respond(). O AnyHook mesmo responde ao remetente, então um workflow que precisa mandar sua própria resposta HTTP, como um slash command do Slack, precisa de um servidor que responda a tempo. O AnyHook responde ao handshake de verificação da Meta por você.
  • Triggers que fazem polling num app, como uma linha nova numa planilha do Google Sheets.

Para esses, o n8n, o Make e o Zapier têm as integrações. Uma URL do AnyHook ainda pode ficar na frente das URLs de webhook deles, então a próxima mudança também é só uma troca de destino.

A mudança, um workflow por vez

  1. Crie um app e adicione seu endpoint do Pipedream como destino. Nada muda ainda: o Pipedream continua rodando o workflow, e o AnyHook guarda cada evento no caminho. Uma coisa muda a partir do passo 2: o AnyHook encaminha cada requisição como um POST com seus cabeçalhos e corpo, sem a query string, o caminho depois do app nem o IP de quem chamou, então um workflow que lê esses dados não vai encontrá-los.
  2. Em cada provedor, troque a URL do Pipedream pela URL do app. É a última vez que você a edita lá.
  3. Coloque o workflow na seção Code do app e adicione os segredos dele. Uma etapa de código entra colada, com as mudanças listadas acima, uma ação pronta começa de um template, e várias etapas viram uma função só, em ordem: essa é a parte que vale a pena passar para um agente. O editor salva código novo desligado; pela API ou pelo MCP, passe "enabled": false, porque o primeiro salvamento sem isso já entra no ar. Rode o código no último evento armazenado e leia os logs. Uma execução de teste faz o que o código faz, então, se ele grava em algum lugar, aponte-o primeiro para um canal ou uma tabela de teste.
  4. Remova o destino do Pipedream e depois ligue o código. Cada mudança leva até um minuto para chegar a todos os pontos da edge, então um evento nesse intervalo ainda pode ir para o Pipedream, ou ficar registrado sem destino; faça o replay de um evento registrado assim que o código estiver ligado, e o código o executa.
  5. Repita antes de 31 de março de 2027. Mudar de novo depois, para o n8n ou um servidor seu, é uma troca de destino; os provedores mantêm a URL.

Com um agente

A exportação do Pipedream (Settings do projeto, depois Export Workflows) é um ZIP com o trigger de cada workflow, o código das etapas de código e as configurações das ações prontas. Credenciais e variáveis de ambiente ficam de fora, e os valores de props secretas aparecem como <redacted>; tudo isso vira segredos que você adiciona. Isso basta para um agente fazer a reescrita. Conecte o Claude Code, o Codex ou outro agente ao servidor MCP do AnyHook, https://anyhook.net/mcp, descompacte a exportação num lugar onde ele consiga ler e cole isto:

Mova meus workflows do Pipedream para o AnyHook. A exportação descompactada está em ./pipedream-export.
Para cada workflow com trigger HTTP, de agendamento ou de e-mail:
1. Use o app do AnyHook que já encaminha a URL deste workflow para o Pipedream; crie um só se não houver nenhum, com origem generic para um trigger de agendamento ou de e-mail. Um trigger de agendamento mantém seu cron como o agendamento do código.
2. Escreva as etapas dele como um único handler de código, em ordem. Etapas de código rodam como estão escritas, exceto o que https://anyhook.net/pt/migrate/pipedream lista em "O que não vai junto". Reescreva cada ação pronta como uma chamada à API daquele serviço, partindo de https://anyhook.net/code-templates.md, e lance um erro quando uma chamada falhar.
3. Faça o deploy com enabled: false e sem valores de segredos. Liste os segredos de que ele precisa e onde eu consigo cada um.
4. Teste com um evento de exemplo e me mostre o resultado.
Não mude nada no Pipedream. Eu adiciono os segredos, removo o destino do Pipedream e depois ligo o código.

Ele trabalha com anyhook_apps_create, anyhook_code_deploy e anyhook_code_test, e começa cada ação pelos mesmos templates do editor, code-templates.md. Ele faz o deploy de cada handler desligado; você adiciona os segredos, remove o destino do Pipedream e liga o código. Salvar código que instala pacotes novos pode levar alguns minutos. Um agente que roda o pacote npm com uma chave, como o Cursor, o Windsurf e o Claude Desktop, precisa do anyhook-mcp 0.4.0 ou mais recente para estas ferramentas, e o npx -y já busca essa versão. Como conectar um agente.

Quanto custa

  • Free, $0: 1 app, 10.000 eventos por mês, sem código. O bastante para manter uma URL na frente do Pipedream ou do n8n.
  • Pro, $20/mês: 10 apps, 50.000 eventos, 3.000 execuções de código de até 105 s cada.
  • Scale, $90/mês: 50 apps, 250.000 eventos, 12.000 execuções de código de até 285 s cada.

Um app é uma URL e o código dela, então o Pro comporta 10 workflows com triggers HTTP. As execuções são um limite à parte: uma nova tentativa, uma execução de teste, um replay e um disparo de agendamento contam como uma execução cada, e um agendamento a cada 15 minutos dispara cerca de 2.880 vezes por mês. Não há excedente para execuções: passadas as execuções do mês, uma entrega ao código é recusada e retida, sem novas tentativas, e você faz o replay quando o mês virar ou o plano crescer. A documentação lista os outros limites de um handler. Preços.

Perguntas

Quando o Pipedream Workflows será encerrado?
Em 31 de março de 2027. O Pipedream exclui todos os dados do Workflows até 30 de abril de 2027, incluindo as credenciais e os tokens OAuth das contas conectadas. O Pipedream Connect não é afetado.
Minhas URLs de webhook *.m.pipedream.net continuam funcionando?
Até 31 de março de 2027. Aponte cada provedor para uma URL do AnyHook agora, encaminhe essa URL para seu endpoint do Pipedream até o código ter migrado, e o provedor nunca mais vai precisar de uma URL nova.
Minhas etapas de código Node.js vão rodar no AnyHook?
No Pro e no Scale, na maior parte como estão escritas: defineComponent, $.export, $.flow.exit, props e data stores funcionam, os pacotes npm que uma etapa importa são instalados quando você salva o código, e o $auth de uma conta conectada lê um segredo que você adiciona. steps.trigger.event traz o corpo e os cabeçalhos da requisição, então uma etapa que lê a query string, path, url ou client_ip, ou os campos do trigger de um agendamento ou de um e-mail, precisa mudar essas linhas. Etapas em Python, Go e Bash, require(), $.respond, $.send, $.flow.delay e $.flow.rerun precisam ser reescritos.
O que acontece com ações prontas como "Slack: send a message"?
Elas viram poucas linhas de código que você pode ler e mudar. O editor de código tem templates para estas: Slack message, Discord message, Telegram message, Email through Resend, Google Sheets row, Airtable record, Notion page, Ask Claude, Any HTTP API. Um agente pode reescrever o resto a partir da sua exportação do Pipedream, que lista cada ação com suas configurações.
Meu código fica preso ao AnyHook?
Não. Um handler é uma função JavaScript que recebe o evento e seus segredos. Copie o código do editor ou leia pela API, guarde no git e chame de um servidor seu se você sair.
Posso mover meus workflows para o n8n, o Make ou o Zapier em vez disso?
Sim. Coloque uma URL do AnyHook na frente da URL de webhook deles: você mantém um log de cada evento e das novas tentativas, e mudar de novo depois é uma troca de destino, não uma URL nova em cada provedor. O AnyHook encaminha cada requisição como um POST com seus cabeçalhos e corpo, então um workflow de lá que lê a query string não vai encontrá-la.