No designer de processos de negócios do Bitrix24 existe a ação "Código PHP", que executa código arbitrário dentro do processo. Ela só está disponível na versão on-premise — no Bitrix24 em nuvem essa ação não existe em nenhum plano. Ao mesmo tempo, as tarefas típicas para as quais se adiciona PHP ao processo — requisição a uma API externa, análise da resposta, extração de um texto, condição composta — montam-se na nuvem com robôs prontos. Vamos ver onde está a fronteira e como cada cenário é substituído.

Onde a ação "Código PHP" está disponível e por que não há na nuvem?

"Código PHP" é uma ação da edição on-premise: dentro do modelo escreve-se código arbitrário, executado no servidor do portal com acesso à API do núcleo. Na nuvem, o portal roda em infraestrutura compartilhada do Bitrix24, e a execução de código do usuário ali é vedada — é uma limitação de arquitetura, não uma questão de plano ou de configuração escondida. Por isso, as instruções de fóruns do tipo "cole este PHP no processo de negócios" só se aplicam ao on-premise. Se olharmos o que exatamente o código faz nesses modelos, quase sempre é uma de quatro coisas: acessar um sistema externo, analisar a resposta dele, extrair um trecho de uma string, tomar uma decisão por várias condições. Cada grupo é resolvido na nuvem por um robô separado — a seguir, um para cada cenário.

Como acessar uma API externa sem PHP?

O robô «Requisição HTTP GET/POST» executa a requisição direto do processo de negócios: métodos GET, POST, PUT, PATCH, DELETE e HEAD, corpo arbitrário, cabeçalhos em formato JSON — por exemplo, Authorization para o token —, timeout de 1 a 60 segundos. Devolve o corpo da resposta, o código de status HTTP e o indicador de sucesso S/N (código 2xx). Os redirecionamentos são verificados a cada passo, os acessos a endereços internos da rede são bloqueados, o corpo da resposta é limitado a 1 MB; o robô está disponível nos planos pagos do Bitrix24. Isso basta para integrações do nível "passar os dados do negócio ao sistema de gestão e buscar o status do pedido". A entrada de dados no sentido inverso, de fora para dentro do portal, é feita por webhooks.

Como analisar a resposta da API sem json_decode?

A resposta de um sistema externo quase sempre é JSON, e no PHP on-premise seguia-se com um par de linhas com json_decode. Na nuvem, o mesmo é feito pelo robô «Extrair valor de JSON por caminho»: recebe uma string JSON e um caminho separado por ponto — data.user.email, items.0.name —, devolve o valor como string, objetos e arrays como JSON para análise posterior, mais o indicador "Caminho encontrado" (S/N). Se o JSON for inválido ou o caminho não existir, o robô devolve N — por ele o processo desvia o erro para uma ramificação separada, em vez de gravar vazio no campo do negócio. A combinação "requisição HTTP → extrair valor → gravar no campo" resolve a maioria dos cenários de integração que antes exigiam código.

Como extrair dados de um texto sem preg_match?

O segundo clássico do PHP nos processos são as expressões regulares: extrair o número do pedido do assunto de um e-mail, encontrar links num comentário, validar o formato de um código de produto. O robô «Extrair por expressão regular» aplica o padrão à string de origem: o padrão é informado sem delimitadores, cirílico e unicode são tratados corretamente, o número do grupo de captura permite devolver não toda a correspondência, mas uma parte específica — por exemplo, o valor entre parênteses. Devolve a primeira correspondência, a lista de todas as correspondências e o indicador "Encontrado" (S/N). Caso típico: o lead foi criado a partir do e-mail "Pedido ORD-12345: dúvida sobre a entrega" — o padrão ORD-\d+ extrai o número, e o processo encontra o negócio relacionado.

Como substituir um if com várias condições?

A ação nativa "Condição" do designer compara valores, mas uma combinação de três ou quatro verificações transforma o modelo numa escada de ramificações aninhadas — exatamente o que no on-premise se escondia em três linhas de código. O robô «Condição composta (AND / OR / NOT)» monta a verificação em um passo: até quatro trios "valor — operador — valor" com lógica AND ou OR; entre os operadores estão igualdade, comparação de números, contains, is_empty. Para aninhamento arbitrário há o modo JSON com grupos and, or e not. Na saída, um único indicador S/N, pelo qual o processo se ramifica com a condição comum — a lógica se lê no designer, e não num código que só o autor entendia.

Quando realmente não dá para fugir do on-premise?

A fronteira honesta: os robôs cobrem cenários de integração e de lógica, mas não tudo. Se o código precisa trabalhar com o sistema de arquivos do servidor, eventos do núcleo ou módulos próprios — isso é on-premise e desenvolvedor. Mas se o PHP era necessário para "requisitar, analisar, decidir" — o portal em nuvem resolve isso com uma cadeia de dois a quatro robôs, que qualquer administrador consegue ler e ajustar. Vale começar por um inventário: quais passos dos regulamentos atuais esbarram na falta de código — e montá-los a partir de ações prontas, como descrito na visão geral dos processos de negócios.

Conclusão

"Código PHP" — só na versão on-premise; na nuvem, código arbitrário não é executado. Substituições por cenário: requisição à API — "Requisição HTTP GET/POST", análise da resposta — "Extrair valor de JSON por caminho", texto — "Extrair por expressão regular", verificações compostas — "Condição composta". Todos os quatro estão no catálogo da Roboteka: instalação gratuita pelo Bitrix24.Market, funcionam tanto na nuvem quanto no on-premise. Não achou a ação que precisava — descreva a tarefa, criamos o robô de graça.