curl --request PUT \
--url https://api.olie.ai/api/management/steps/{step}/assistants/{assistant} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Resumo do atendimento",
"active": true,
"funnel_step_id": null,
"ai_agent_id": null,
"prompt": "",
"execute_on": "moved",
"manual_execution_enabled": false,
"failure_funnel_step_id": null,
"result_as_media": true,
"result_as_dynamic_form": null
}
'import requests
url = "https://api.olie.ai/api/management/steps/{step}/assistants/{assistant}"
payload = {
"name": "Resumo do atendimento",
"active": True,
"funnel_step_id": None,
"ai_agent_id": None,
"prompt": "",
"execute_on": "moved",
"manual_execution_enabled": False,
"failure_funnel_step_id": None,
"result_as_media": True,
"result_as_dynamic_form": None
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Resumo do atendimento',
active: true,
funnel_step_id: null,
ai_agent_id: null,
prompt: '',
execute_on: 'moved',
manual_execution_enabled: false,
failure_funnel_step_id: null,
result_as_media: true,
result_as_dynamic_form: null
})
};
fetch('https://api.olie.ai/api/management/steps/{step}/assistants/{assistant}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.olie.ai/api/management/steps/{step}/assistants/{assistant}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Resumo do atendimento',
'active' => true,
'funnel_step_id' => null,
'ai_agent_id' => null,
'prompt' => '',
'execute_on' => 'moved',
'manual_execution_enabled' => false,
'failure_funnel_step_id' => null,
'result_as_media' => true,
'result_as_dynamic_form' => null
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.olie.ai/api/management/steps/{step}/assistants/{assistant}"
payload := strings.NewReader("{\n \"name\": \"Resumo do atendimento\",\n \"active\": true,\n \"funnel_step_id\": null,\n \"ai_agent_id\": null,\n \"prompt\": \"\",\n \"execute_on\": \"moved\",\n \"manual_execution_enabled\": false,\n \"failure_funnel_step_id\": null,\n \"result_as_media\": true,\n \"result_as_dynamic_form\": null\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.olie.ai/api/management/steps/{step}/assistants/{assistant}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Resumo do atendimento\",\n \"active\": true,\n \"funnel_step_id\": null,\n \"ai_agent_id\": null,\n \"prompt\": \"\",\n \"execute_on\": \"moved\",\n \"manual_execution_enabled\": false,\n \"failure_funnel_step_id\": null,\n \"result_as_media\": true,\n \"result_as_dynamic_form\": null\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.olie.ai/api/management/steps/{step}/assistants/{assistant}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Resumo do atendimento\",\n \"active\": true,\n \"funnel_step_id\": null,\n \"ai_agent_id\": null,\n \"prompt\": \"\",\n \"execute_on\": \"moved\",\n \"manual_execution_enabled\": false,\n \"failure_funnel_step_id\": null,\n \"result_as_media\": true,\n \"result_as_dynamic_form\": null\n}"
response = http.request(request)
puts response.read_body{
"response": true,
"assistant": {
"id": "9f1c4b02-6f3a-4b8e-9d21-7c5e0a41b8d3",
"name": "Resumo do atendimento",
"active": false,
"funnel_step_id": 312,
"ai_agent_id": "2b7d94f6-0c31-4a85-b6e2-58f1c0d93a47",
"prompt": "Resuma em até cinco linhas o histórico de conversas do projeto e destaque o que ficou pendente.",
"execute_on": "moved",
"manual_execution_enabled": true,
"result_as_media": true,
"result_as_dynamic_form": null,
"failure_funnel_step_id": 318,
"created_at": "2026-07-28T14:12:03.000000Z",
"updated_at": "2026-08-19T11:07:22.000000Z",
"deleted_at": null
}
}Atualizar um assistente da etapa
Substitui a configuração do assistente. O corpo é o mesmo da criação e não aceita atualização parcial: name, funnel_step_id, ai_agent_id, prompt e execute_on precisam vir a cada requisição, e ao menos um destino de resultado continua obrigatório.
Enviar active: false tira o assistente de operação sem apagar nada: a configuração e o histórico de execuções permanecem, mas ele deixa de disparar.
curl --request PUT \
--url https://api.olie.ai/api/management/steps/{step}/assistants/{assistant} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Resumo do atendimento",
"active": true,
"funnel_step_id": null,
"ai_agent_id": null,
"prompt": "",
"execute_on": "moved",
"manual_execution_enabled": false,
"failure_funnel_step_id": null,
"result_as_media": true,
"result_as_dynamic_form": null
}
'import requests
url = "https://api.olie.ai/api/management/steps/{step}/assistants/{assistant}"
payload = {
"name": "Resumo do atendimento",
"active": True,
"funnel_step_id": None,
"ai_agent_id": None,
"prompt": "",
"execute_on": "moved",
"manual_execution_enabled": False,
"failure_funnel_step_id": None,
"result_as_media": True,
"result_as_dynamic_form": None
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Resumo do atendimento',
active: true,
funnel_step_id: null,
ai_agent_id: null,
prompt: '',
execute_on: 'moved',
manual_execution_enabled: false,
failure_funnel_step_id: null,
result_as_media: true,
result_as_dynamic_form: null
})
};
fetch('https://api.olie.ai/api/management/steps/{step}/assistants/{assistant}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.olie.ai/api/management/steps/{step}/assistants/{assistant}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Resumo do atendimento',
'active' => true,
'funnel_step_id' => null,
'ai_agent_id' => null,
'prompt' => '',
'execute_on' => 'moved',
'manual_execution_enabled' => false,
'failure_funnel_step_id' => null,
'result_as_media' => true,
'result_as_dynamic_form' => null
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.olie.ai/api/management/steps/{step}/assistants/{assistant}"
payload := strings.NewReader("{\n \"name\": \"Resumo do atendimento\",\n \"active\": true,\n \"funnel_step_id\": null,\n \"ai_agent_id\": null,\n \"prompt\": \"\",\n \"execute_on\": \"moved\",\n \"manual_execution_enabled\": false,\n \"failure_funnel_step_id\": null,\n \"result_as_media\": true,\n \"result_as_dynamic_form\": null\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.olie.ai/api/management/steps/{step}/assistants/{assistant}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Resumo do atendimento\",\n \"active\": true,\n \"funnel_step_id\": null,\n \"ai_agent_id\": null,\n \"prompt\": \"\",\n \"execute_on\": \"moved\",\n \"manual_execution_enabled\": false,\n \"failure_funnel_step_id\": null,\n \"result_as_media\": true,\n \"result_as_dynamic_form\": null\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.olie.ai/api/management/steps/{step}/assistants/{assistant}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Resumo do atendimento\",\n \"active\": true,\n \"funnel_step_id\": null,\n \"ai_agent_id\": null,\n \"prompt\": \"\",\n \"execute_on\": \"moved\",\n \"manual_execution_enabled\": false,\n \"failure_funnel_step_id\": null,\n \"result_as_media\": true,\n \"result_as_dynamic_form\": null\n}"
response = http.request(request)
puts response.read_body{
"response": true,
"assistant": {
"id": "9f1c4b02-6f3a-4b8e-9d21-7c5e0a41b8d3",
"name": "Resumo do atendimento",
"active": false,
"funnel_step_id": 312,
"ai_agent_id": "2b7d94f6-0c31-4a85-b6e2-58f1c0d93a47",
"prompt": "Resuma em até cinco linhas o histórico de conversas do projeto e destaque o que ficou pendente.",
"execute_on": "moved",
"manual_execution_enabled": true,
"result_as_media": true,
"result_as_dynamic_form": null,
"failure_funnel_step_id": 318,
"created_at": "2026-07-28T14:12:03.000000Z",
"updated_at": "2026-08-19T11:07:22.000000Z",
"deleted_at": null
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
ID da etapa do funil.
ID (UUID) do assistente de etapa.
Body
Configuração do assistente. Pelo menos um destino de resultado é obrigatório: result_as_media ou result_as_dynamic_form.
Nome do assistente. Obrigatório, até 255 caracteres.
ID da etapa do funil à qual o assistente pertence. Obrigatório — é este campo que vale, e não o ID da URL.
ID (UUID) do agente de IA que executa a tarefa. Obrigatório e precisa pertencer à mesma conta.
Instrução dada ao agente. Obrigatória. Aceita a sintaxe avançada, com dados do projeto e da etapa.
Gatilho do assistente: moved ao entrar na etapa, unlinked ao sair dela e manual só sob demanda.
moved, unlinked, manual Define se o assistente entra em operação. Padrão true.
Permite disparar o assistente sob demanda mesmo com gatilho automático. Padrão false.
Etapa para onde o projeto vai se a execução falhar. Precisa ser da mesma conta e diferente de funnel_step_id. null deixa o projeto onde está.
Grava o resultado como conteúdo do projeto. Obrigatório quando result_as_dynamic_form não é enviado.
Grava o resultado em um campo de formulário dinâmico. Os identificadores são resolvidos a cada execução pela sintaxe avançada, então aceitam variáveis como {{ project.id }} e {{ step.id }} em vez de valores fixos. Obrigatório quando result_as_media não é enviado.
Show child attributes
Show child attributes
Was this page helpful?