curl --request PUT \
--url https://api.raul.ugps.io/api/v1/activity/{activityId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"contact_id": {},
"activity_type_id": 123,
"content": "<string>"
}
'import requests
url = "https://api.raul.ugps.io/api/v1/activity/{activityId}"
payload = {
"contact_id": {},
"activity_type_id": 123,
"content": "<string>"
}
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({contact_id: {}, activity_type_id: 123, content: '<string>'})
};
fetch('https://api.raul.ugps.io/api/v1/activity/{activityId}', 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.raul.ugps.io/api/v1/activity/{activityId}",
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([
'contact_id' => [
],
'activity_type_id' => 123,
'content' => '<string>'
]),
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.raul.ugps.io/api/v1/activity/{activityId}"
payload := strings.NewReader("{\n \"contact_id\": {},\n \"activity_type_id\": 123,\n \"content\": \"<string>\"\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.raul.ugps.io/api/v1/activity/{activityId}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"contact_id\": {},\n \"activity_type_id\": 123,\n \"content\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.raul.ugps.io/api/v1/activity/{activityId}")
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 \"contact_id\": {},\n \"activity_type_id\": 123,\n \"content\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"activity_id": "<string>",
"activity_type_id": 123,
"activity_type_name": "<string>",
"content": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"files_count": 123,
"item_type": "<string>",
"client_id": {},
"contact_id": {},
"visit_id": {},
"opportunity_id": {},
"quote_id": {},
"invoice_id": {},
"website_form_submission_id": {},
"created_by": {},
"created_by_name": {},
"occurred_at": {},
"edited_at": {},
"editable": true,
"contact_name": {},
"participants": [
{
"contact_id": "<string>",
"role": "<string>",
"contact_name": {},
"email": {},
"phone": {}
}
],
"websiteFormSubmission": {}
}Update an activity
Tipo y contacto: cualquier usuario con acceso. Un cambio de texto sólo lo hace el autor de un registro manual (deja edited_at y auditoría); el mismo texto se ignora.
curl --request PUT \
--url https://api.raul.ugps.io/api/v1/activity/{activityId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"contact_id": {},
"activity_type_id": 123,
"content": "<string>"
}
'import requests
url = "https://api.raul.ugps.io/api/v1/activity/{activityId}"
payload = {
"contact_id": {},
"activity_type_id": 123,
"content": "<string>"
}
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({contact_id: {}, activity_type_id: 123, content: '<string>'})
};
fetch('https://api.raul.ugps.io/api/v1/activity/{activityId}', 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.raul.ugps.io/api/v1/activity/{activityId}",
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([
'contact_id' => [
],
'activity_type_id' => 123,
'content' => '<string>'
]),
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.raul.ugps.io/api/v1/activity/{activityId}"
payload := strings.NewReader("{\n \"contact_id\": {},\n \"activity_type_id\": 123,\n \"content\": \"<string>\"\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.raul.ugps.io/api/v1/activity/{activityId}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"contact_id\": {},\n \"activity_type_id\": 123,\n \"content\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.raul.ugps.io/api/v1/activity/{activityId}")
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 \"contact_id\": {},\n \"activity_type_id\": 123,\n \"content\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"activity_id": "<string>",
"activity_type_id": 123,
"activity_type_name": "<string>",
"content": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"files_count": 123,
"item_type": "<string>",
"client_id": {},
"contact_id": {},
"visit_id": {},
"opportunity_id": {},
"quote_id": {},
"invoice_id": {},
"website_form_submission_id": {},
"created_by": {},
"created_by_name": {},
"occurred_at": {},
"edited_at": {},
"editable": true,
"contact_name": {},
"participants": [
{
"contact_id": "<string>",
"role": "<string>",
"contact_name": {},
"email": {},
"phone": {}
}
],
"websiteFormSubmission": {}
}Authorizations
Token de sesión Better Auth para rutas de backoffice; las rutas de portal usan su token propio.
Path Parameters
Activity UUID
Body
Response
Activity updated successfully
ID de la actividad
ID del tipo de actividad
Nombre del tipo de actividad
Contenido de la actividad
Fecha de creación
Fecha de actualización
Cantidad de archivos adjuntos
Tipo de item para el timeline
ID del cliente
ID del contacto
ID de visita vinculada
ID del negocio/oportunidad vinculada
ID de la cotización vinculada
ID de la factura vinculada
ID del formulario web vinculado a la actividad
ID del usuario creador
Nombre del usuario creador
Fecha/hora efectiva de la actividad
Última edición del contenido por su autor
El usuario actual puede editar el contenido (autor de un registro manual)
Nombre del contacto asociado
Contactos participantes de la actividad
Show child attributes
Show child attributes
Formulario web estructurado vinculado a la actividad