curl --request POST \
--url https://api.olie.ai/api/management/projects/{project}/clone \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Nome do novo projeto",
"prefix": "PRJ",
"description": "Descrição do novo projeto",
"customer": true,
"funnels": true,
"clone_tags": true,
"checklists": true,
"clone_form_answers": true,
"form_answers_content": null,
"medias": false,
"medias_mention": false,
"forum": false,
"loose_checklists": true,
"loose_form_answers": true,
"clone_groups": true,
"clone_assignees": true
}
'import requests
url = "https://api.olie.ai/api/management/projects/{project}/clone"
payload = {
"name": "Nome do novo projeto",
"prefix": "PRJ",
"description": "Descrição do novo projeto",
"customer": True,
"funnels": True,
"clone_tags": True,
"checklists": True,
"clone_form_answers": True,
"form_answers_content": None,
"medias": False,
"medias_mention": False,
"forum": False,
"loose_checklists": True,
"loose_form_answers": True,
"clone_groups": True,
"clone_assignees": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Nome do novo projeto',
prefix: 'PRJ',
description: 'Descrição do novo projeto',
customer: true,
funnels: true,
clone_tags: true,
checklists: true,
clone_form_answers: true,
form_answers_content: null,
medias: false,
medias_mention: false,
forum: false,
loose_checklists: true,
loose_form_answers: true,
clone_groups: true,
clone_assignees: true
})
};
fetch('https://api.olie.ai/api/management/projects/{project}/clone', 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/projects/{project}/clone",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Nome do novo projeto',
'prefix' => 'PRJ',
'description' => 'Descrição do novo projeto',
'customer' => true,
'funnels' => true,
'clone_tags' => true,
'checklists' => true,
'clone_form_answers' => true,
'form_answers_content' => null,
'medias' => false,
'medias_mention' => false,
'forum' => false,
'loose_checklists' => true,
'loose_form_answers' => true,
'clone_groups' => true,
'clone_assignees' => true
]),
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/projects/{project}/clone"
payload := strings.NewReader("{\n \"name\": \"Nome do novo projeto\",\n \"prefix\": \"PRJ\",\n \"description\": \"Descrição do novo projeto\",\n \"customer\": true,\n \"funnels\": true,\n \"clone_tags\": true,\n \"checklists\": true,\n \"clone_form_answers\": true,\n \"form_answers_content\": null,\n \"medias\": false,\n \"medias_mention\": false,\n \"forum\": false,\n \"loose_checklists\": true,\n \"loose_form_answers\": true,\n \"clone_groups\": true,\n \"clone_assignees\": true\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.olie.ai/api/management/projects/{project}/clone")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Nome do novo projeto\",\n \"prefix\": \"PRJ\",\n \"description\": \"Descrição do novo projeto\",\n \"customer\": true,\n \"funnels\": true,\n \"clone_tags\": true,\n \"checklists\": true,\n \"clone_form_answers\": true,\n \"form_answers_content\": null,\n \"medias\": false,\n \"medias_mention\": false,\n \"forum\": false,\n \"loose_checklists\": true,\n \"loose_form_answers\": true,\n \"clone_groups\": true,\n \"clone_assignees\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.olie.ai/api/management/projects/{project}/clone")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Nome do novo projeto\",\n \"prefix\": \"PRJ\",\n \"description\": \"Descrição do novo projeto\",\n \"customer\": true,\n \"funnels\": true,\n \"clone_tags\": true,\n \"checklists\": true,\n \"clone_form_answers\": true,\n \"form_answers_content\": null,\n \"medias\": false,\n \"medias_mention\": false,\n \"forum\": false,\n \"loose_checklists\": true,\n \"loose_form_answers\": true,\n \"clone_groups\": true,\n \"clone_assignees\": true\n}"
response = http.request(request)
puts response.read_body{
"response": true,
"project": {
"id": "019e1c02-77aa-7391-b0d5-5e4a2f8c6b13",
"frame_id": "019c75de-532c-7047-9563-daf1448ca963",
"code": "SC-14",
"name": "Shopping Center — Fase 2",
"description": "Obra completa do empreendimento",
"status": 1,
"impact": 9,
"budget": 340000,
"is_template": false,
"parent_id": null,
"customer_id": null,
"contact_id": null,
"created_by": "019c1e87-63f4-71dd-a4e3-6eaea0619c2f",
"created_at": "2026-08-19T11:20:44.000000Z",
"updated_at": "2026-08-19T11:20:44.000000Z"
}
}Clonar um projeto
Cria uma cópia de um projeto existente. Cada parte do projeto é copiada de forma independente: cliente, funis, etiquetas, checklists, respostas de formulários, conteúdos, fórum, grupos e responsáveis só entram no clone quando a opção correspondente é enviada como true.
Quem só pode criar projetos a partir de modelos não escolhe as opções: nesse caso o clone é sempre completo, com todas as partes copiadas.
curl --request POST \
--url https://api.olie.ai/api/management/projects/{project}/clone \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Nome do novo projeto",
"prefix": "PRJ",
"description": "Descrição do novo projeto",
"customer": true,
"funnels": true,
"clone_tags": true,
"checklists": true,
"clone_form_answers": true,
"form_answers_content": null,
"medias": false,
"medias_mention": false,
"forum": false,
"loose_checklists": true,
"loose_form_answers": true,
"clone_groups": true,
"clone_assignees": true
}
'import requests
url = "https://api.olie.ai/api/management/projects/{project}/clone"
payload = {
"name": "Nome do novo projeto",
"prefix": "PRJ",
"description": "Descrição do novo projeto",
"customer": True,
"funnels": True,
"clone_tags": True,
"checklists": True,
"clone_form_answers": True,
"form_answers_content": None,
"medias": False,
"medias_mention": False,
"forum": False,
"loose_checklists": True,
"loose_form_answers": True,
"clone_groups": True,
"clone_assignees": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Nome do novo projeto',
prefix: 'PRJ',
description: 'Descrição do novo projeto',
customer: true,
funnels: true,
clone_tags: true,
checklists: true,
clone_form_answers: true,
form_answers_content: null,
medias: false,
medias_mention: false,
forum: false,
loose_checklists: true,
loose_form_answers: true,
clone_groups: true,
clone_assignees: true
})
};
fetch('https://api.olie.ai/api/management/projects/{project}/clone', 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/projects/{project}/clone",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Nome do novo projeto',
'prefix' => 'PRJ',
'description' => 'Descrição do novo projeto',
'customer' => true,
'funnels' => true,
'clone_tags' => true,
'checklists' => true,
'clone_form_answers' => true,
'form_answers_content' => null,
'medias' => false,
'medias_mention' => false,
'forum' => false,
'loose_checklists' => true,
'loose_form_answers' => true,
'clone_groups' => true,
'clone_assignees' => true
]),
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/projects/{project}/clone"
payload := strings.NewReader("{\n \"name\": \"Nome do novo projeto\",\n \"prefix\": \"PRJ\",\n \"description\": \"Descrição do novo projeto\",\n \"customer\": true,\n \"funnels\": true,\n \"clone_tags\": true,\n \"checklists\": true,\n \"clone_form_answers\": true,\n \"form_answers_content\": null,\n \"medias\": false,\n \"medias_mention\": false,\n \"forum\": false,\n \"loose_checklists\": true,\n \"loose_form_answers\": true,\n \"clone_groups\": true,\n \"clone_assignees\": true\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.olie.ai/api/management/projects/{project}/clone")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Nome do novo projeto\",\n \"prefix\": \"PRJ\",\n \"description\": \"Descrição do novo projeto\",\n \"customer\": true,\n \"funnels\": true,\n \"clone_tags\": true,\n \"checklists\": true,\n \"clone_form_answers\": true,\n \"form_answers_content\": null,\n \"medias\": false,\n \"medias_mention\": false,\n \"forum\": false,\n \"loose_checklists\": true,\n \"loose_form_answers\": true,\n \"clone_groups\": true,\n \"clone_assignees\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.olie.ai/api/management/projects/{project}/clone")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Nome do novo projeto\",\n \"prefix\": \"PRJ\",\n \"description\": \"Descrição do novo projeto\",\n \"customer\": true,\n \"funnels\": true,\n \"clone_tags\": true,\n \"checklists\": true,\n \"clone_form_answers\": true,\n \"form_answers_content\": null,\n \"medias\": false,\n \"medias_mention\": false,\n \"forum\": false,\n \"loose_checklists\": true,\n \"loose_form_answers\": true,\n \"clone_groups\": true,\n \"clone_assignees\": true\n}"
response = http.request(request)
puts response.read_body{
"response": true,
"project": {
"id": "019e1c02-77aa-7391-b0d5-5e4a2f8c6b13",
"frame_id": "019c75de-532c-7047-9563-daf1448ca963",
"code": "SC-14",
"name": "Shopping Center — Fase 2",
"description": "Obra completa do empreendimento",
"status": 1,
"impact": 9,
"budget": 340000,
"is_template": false,
"parent_id": null,
"customer_id": null,
"contact_id": null,
"created_by": "019c1e87-63f4-71dd-a4e3-6eaea0619c2f",
"created_at": "2026-08-19T11:20:44.000000Z",
"updated_at": "2026-08-19T11:20:44.000000Z"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
ID (UUID) do projeto.
Body
O que deve ser copiado para o novo projeto.
Nome do novo projeto. Sem ele, o nome do original é mantido.
Prefixo usado no código do novo projeto.
Descrição do novo projeto.
Respostas de formulário a gravar no clone.
Resposta de formulário.
Copia o cliente e o contato vinculados.
Copia os funis e as etapas em que o projeto está.
Copia as etiquetas de funil.
Copia os checklists das etapas.
Copia as respostas dos formulários.
Copia os conteúdos enviados no projeto.
Mantém as menções dentro dos conteúdos copiados.
Copia as conversas do fórum.
Copia os checklists avulsos.
Copia os formulários avulsos e suas respostas.
Copia os grupos de projeto.
Copia os responsáveis e seguidores.
Was this page helpful?