API REST + webhook

Collega Unitly ai tuoi servizi

Tutto quello che si fa nell’app, anche da codice: 194 operazioni su task, calendario editoriale, CRM, contabilità, ticket, chat, documenti e altro. E un avviso firmato ogni volta che qualcosa cambia.

Inizia in 5 minuti

  1. Crea una chiave. Un amministratore apre Unitly → Impostazioni → API e webhook → Nuova chiave, sceglie le aree (per esempio “Task: lettura e scrittura”, “CRM: lettura”) e copia la chiave: viene mostrata una volta sola.
  2. Prova la chiave. Ogni richiesta porta l’intestazione Authorization: Bearer con la chiave.
  3. Usa l’ID dell’organizzazione (lo restituisce /api/v1/key) negli indirizzi: /api/v1/orgs/{orgId}/….
curl https://unitly.it/api/v1/key \
  -H "Authorization: Bearer $UNITLY_API_KEY"
# Gli spazi, poi un task in uno spazio
curl https://unitly.it/api/v1/orgs/$ORG_ID/workspaces -H "Authorization: Bearer $UNITLY_API_KEY"

curl -X POST https://unitly.it/api/v1/orgs/$ORG_ID/tasks \
  -H "Authorization: Bearer $UNITLY_API_KEY" -H "Content-Type: application/json" \
  -d '{"workspaceId": "…", "title": "Preparare il preventivo", "dueDate": "2026-11-20"}'

Chiavi e permessi

  • Solo gli amministratori creano chiavi. Una chiave agisce con i permessi di chi l’ha creata, limitati alle aree scelte; scrittura include la lettura.
  • Una chiave non può gestire chiavi o webhook, collegare account (Google, social) né toccare l’account personale (password, sessioni, profilo).
  • Smette di funzionare se viene revocata, se scade o se chi l’ha creata non è più amministratore.
  • Conservala come una password: solo sul server, mai in un’app o in una pagina web.
AreaPermessi
Spazi, membri e invitilettura / scrittura
Tasklettura / scrittura
Calendario editorialelettura / scrittura
Calendario ed eventilettura / scrittura
CRMlettura / scrittura
Contabilitàlettura / scrittura
Persone (ferie e permessi)lettura / scrittura
Ticketlettura / scrittura
Chat (solo canali degli spazi)lettura / scrittura
Documentilettura / scrittura
Social: account, statistiche, campagnelettura / scrittura
Home, notifiche e ricercalettura / scrittura

Formato, errori e limiti

  • JSON in entrata e in uscita; ID in formato UUID; date e orari in ISO 8601.
  • Gli errori seguono lo standard RFC 9457 (application/problem+json): title è un messaggio leggibile in italiano, code è stabile e va usato nel codice (invalid_api_key, insufficient_scope, not_found, validation_error con il dettaglio per campo in errors, rate_limited).
  • Limite: 600 richieste al minuto per chiave; oltre si riceve 429.
  • Gli elenchi restituiscono tutti gli elementi visibili (filtrabili con i parametri indicati nel riferimento).
{
  "type": "about:blank",
  "title": "La chiave API non ha accesso a quest’area (o in scrittura).",
  "status": 403,
  "code": "insufficient_scope",
  "requestId": "req-1a"
}

Webhook

Un webhook avvisa il tuo servizio quando in Unitly qualcosa cambia: Unitly invia una richiesta POST in JSON all’indirizzo scelto, entro pochi secondi. Si crea da Impostazioni → API e webhook, scegliendo gli eventi (o tutti).

POST https://tuo-servizio.example/unitly
Content-Type: application/json
Unitly-Event: task.created
Unitly-Event-Id: 2f1c…
Unitly-Signature: t=1793740000,v1=5d2a…

{
  "id": "2f1c…",
  "type": "task.created",
  "createdAt": "2026-11-03T09:30:00.000Z",
  "organizationId": "…",
  "workspaceId": "…",
  "actor": { "type": "user", "id": "…" },
  "data": { "id": "…", "title": "Preparare il preventivo", "…": "…" }
}
  • data è l’oggetto come lo restituisce l’API per quell’azione; per le eliminazioni contiene solo l’id.
  • Conferma rispondendo con un codice 2xx entro 10 secondi. Altrimenti Unitly riprova dopo 1, 5, 30 minuti, 2, 6, 12 e 24 ore (8 tentativi). Dopo 5 eventi non consegnati di fila il webhook si disattiva e lo vedi nelle impostazioni.
  • Lo stesso evento può arrivare più di una volta e non sempre in ordine: usa id per ignorare i doppioni e createdAt per l’ordine.
  • I messaggi diretti e i canali privati della chat non escono mai da Unitly: solo i canali pubblici degli spazi.
  • Gli indirizzi devono essere pubblici e in https.

Verificare la firma

Ogni webhook ha un segreto (whsec_…), mostrato alla creazione. La firma è l’HMAC-SHA256 di <t>.<corpo>: calcolala sul corpo così come arriva, prima di leggerlo come JSON, e rifiuta richieste con t più vecchio di 5 minuti.

// Node.js
import { createHmac, timingSafeEqual } from 'node:crypto';

export function verifyUnitly(rawBody, header, secret) {
  const { t, v1 } = Object.fromEntries(header.split(',').map((p) => p.split('=')));
  if (Math.abs(Date.now() / 1000 - Number(t)) > 300) return false;
  const expected = createHmac('sha256', secret).update(`${t}.${rawBody}`).digest('hex');
  return timingSafeEqual(Buffer.from(expected), Buffer.from(v1));
}
// PHP
function verifyUnitly(string $rawBody, string $header, string $secret): bool {
    parse_str(str_replace(',', '&', $header), $p);
    if (abs(time() - (int) $p['t']) > 300) return false;
    return hash_equals(hash_hmac('sha256', $p['t'] . '.' . $rawBody, $secret), $p['v1']);
}
# Python
import hmac, hashlib, time

def verify_unitly(raw_body: bytes, header: str, secret: str) -> bool:
    p = dict(x.split("=", 1) for x in header.split(","))
    if abs(time.time() - int(p["t"])) > 300:
        return False
    expected = hmac.new(secret.encode(), f"{p['t']}.".encode() + raw_body, hashlib.sha256).hexdigest()
    return hmac.compare_digest(expected, p["v1"])

Eventi disponibili

EventoQuando
workspace.createdSpazio creato
workspace.updatedSpazio modificato
workspace.deletedSpazio eliminato
workspace.member_addedPersona aggiunta a uno spazio
workspace.member_updatedRuolo nello spazio modificato
workspace.member_removedPersona tolta da uno spazio
member.invitedPersona invitata nell’azienda
member.updatedRuolo nell’azienda modificato
member.removedPersona rimossa dall’azienda
task.createdTask creato
task.updatedTask modificato
task.completedTask completato
task.reopenedTask riaperto
task.deletedTask eliminato
task.comment_createdCommento a un task
content.createdContenuto editoriale creato
content.updatedContenuto editoriale modificato
content.submittedContenuto inviato in revisione
content.approvedContenuto approvato
content.changes_requestedModifiche richieste su un contenuto
content.deletedContenuto editoriale eliminato
content.comment_createdCommento a un contenuto
event.createdEvento creato
event.updatedEvento modificato
event.deletedEvento eliminato
deal.createdTrattativa creata
deal.updatedTrattativa modificata
deal.movedTrattativa spostata di fase
deal.deletedTrattativa eliminata
company.createdAzienda CRM creata
company.updatedAzienda CRM modificata
company.deletedAzienda CRM eliminata
contact.createdContatto creato
contact.updatedContatto modificato
contact.deletedContatto eliminato
activity.createdAttività CRM registrata
email.sentEmail inviata dal CRM
transaction.createdMovimento contabile creato
transaction.updatedMovimento contabile modificato
transaction.deletedMovimento contabile eliminato
leave_request.createdRichiesta di ferie o permesso
leave_request.reviewedRichiesta di ferie approvata o rifiutata
leave_request.deletedRichiesta di ferie annullata
ticket.createdTicket aperto
ticket.updatedTicket modificato
ticket.deletedTicket eliminato
ticket.comment_createdCommento a un ticket
channel.createdCanale chat creato
message.createdMessaggio in un canale
message.updatedMessaggio modificato
page.createdDocumento creato
page.updatedDocumento modificato
page.deletedDocumento eliminato

Più l’evento ping, inviato con il pulsante “Invia una prova”. Le modifiche fatte dai sincronismi automatici (Google Calendar, social) non generano eventi.

Riferimento

Tutte le operazioni disponibili con una chiave, per area. La specifica completa, con gli schemi, è in openapi.json (OpenAPI 3.1: si importa in Postman, Insomnia o in un generatore di client). Negli indirizzi, … sta per /api/v1/orgs/{orgId}.

Spazi, membri e inviti 36 operazioni
GET…

Leggi l’organizzazione · permesso qualsiasi

PATCH…

Modifica l’organizzazione · permesso workspaces:write

Corpo JSON
  • name string
GET…/invitations

Elenco inviti · permesso workspaces:read

POST…/invitations

Crea (inviti) · permesso workspaces:write · evento member.invited

Corpo JSON
  • email email
  • role "admin" | "manager" | "member" | "junior" | "guest"
  • workspaceIdfacoltativo uuid
DELETE…/invitations/{id}

Elimina (inviti) · permesso workspaces:write

GET…/members

Elenco membri · permesso workspaces:read

DELETE…/members/{userId}

Elimina (membri) · permesso workspaces:write · evento member.removed

PATCH…/members/{userId}

Modifica (membri) · permesso workspaces:write · evento member.updated

Corpo JSON
  • role "admin" | "manager" | "member" | "junior" | "guest"
GET…/members/{userId}/workspaces

Elenco spazi · permesso workspaces:read

GET…/workspaces

Elenco spazi · permesso workspaces:read

POST…/workspaces

Crea (spazi) · permesso workspaces:write · evento workspace.created

Corpo JSON
  • name string
  • key string
  • typefacoltativo "general" | "media" | "department" | "client"
  • colorfacoltativo "indigo" | "blue" | "teal" | "green" | "lime" | "amber" | "orange" | "red" | "pink" | "purple"
DELETE…/workspaces/{id}

Elimina (spazi) · permesso workspaces:write · evento workspace.deleted

GET…/workspaces/{id}

Dettaglio (spazi) · permesso workspaces:read

PATCH…/workspaces/{id}

Modifica (spazi) · permesso workspaces:write · evento workspace.updated

Corpo JSON
  • namefacoltativo string
  • typefacoltativo "general" | "media" | "department" | "client"
  • colorfacoltativo "indigo" | "blue" | "teal" | "green" | "lime" | "amber" | "orange" | "red" | "pink" | "purple"
DELETE…/workspaces/{id}/logo

Elimina logo · permesso workspaces:write

POST…/workspaces/{id}/logo

Logo (spazi) · permesso workspaces:write

POST…/workspaces/{id}/members

Crea (membri) · permesso workspaces:write · evento workspace.member_added

Corpo JSON
  • userId uuid
DELETE…/workspaces/{id}/members/{userId}

Elimina (membri) · permesso workspaces:write · evento workspace.member_removed

PATCH…/workspaces/{id}/members/{userId}

Modifica (membri) · permesso workspaces:write · evento workspace.member_updated

Corpo JSON
  • position string | null
  • hiddenModules "ped" | "crm" | "finance" | "hr" | "tickets" | "documents" | "people" | "insights" | "content" | "marketing"[]
PATCH…/workspaces/{id}/module-visibility

Aggiorna module-visibility · permesso workspaces:write

Corpo JSON
  • module "ped" | "crm" | "finance" | "hr" | "tickets" | "documents" | "people" | "insights" | "content" | "marketing"
  • hidden boolean
POST…/workspaces/{id}/transfer

Trasferisci (spazi) · permesso workspaces:write

Corpo JSON
  • userId uuid
GET…/workspaces/{wsId}/sections

Elenco sezioni · permesso workspaces:read

POST…/workspaces/{wsId}/sections

Crea (sezioni) · permesso workspaces:write

Corpo JSON
  • name string
  • iconfacoltativo string
DELETE…/workspaces/{wsId}/sections/{id}

Elimina (sezioni) · permesso workspaces:write

PATCH…/workspaces/{wsId}/sections/{id}

Modifica (sezioni) · permesso workspaces:write

Corpo JSON
  • namefacoltativo string
  • iconfacoltativo string
GET…/workspaces/{wsId}/sections/{id}/blocks

Elenco blocchi · permesso workspaces:read

POST…/workspaces/{wsId}/sections/{id}/blocks

Crea (blocchi) · permesso workspaces:write

Corpo JSON
  • type "text" | "table" | "video"
  • titlefacoltativo string | null
  • contentfacoltativo oggetto
DELETE…/workspaces/{wsId}/sections/{id}/blocks/{blockId}

Elimina (blocchi) · permesso workspaces:write

PATCH…/workspaces/{wsId}/sections/{id}/blocks/{blockId}

Modifica (blocchi) · permesso workspaces:write

Corpo JSON
  • titlefacoltativo string | null
  • contentfacoltativo oggetto
POST…/workspaces/{wsId}/sections/{id}/blocks/reorder

Riordina (blocchi) · permesso workspaces:write

POST…/workspaces/{wsId}/sections/reorder

Riordina (sezioni) · permesso workspaces:write

GET…/workspaces/{wsId}/tasks/chart

Elenco grafico · permesso workspaces:read

GET…/workspaces/{wsId}/widgets

Elenco widget · permesso workspaces:read

POST…/workspaces/{wsId}/widgets

Crea (widget) · permesso workspaces:write

Corpo JSON
  • name string
  • chartType "bar" | "line" | "donut"
  • metrics string[]
  • groupBy string
  • dateRangefacoltativo "last_3_months" | "last_6_months" | "last_12_months" | "this_year" | "all_time"
DELETE…/workspaces/{wsId}/widgets/{id}

Elimina (widget) · permesso workspaces:write

PATCH…/workspaces/{wsId}/widgets/{id}

Modifica (widget) · permesso workspaces:write

Corpo JSON
  • namefacoltativo string
  • chartTypefacoltativo "bar" | "line" | "donut"
  • metricsfacoltativo string[]
  • groupByfacoltativo string
  • dateRangefacoltativo "last_3_months" | "last_6_months" | "last_12_months" | "this_year" | "all_time"
Task 12 operazioni
GET…/states

Elenco stati dei task · permesso tasks:read

GET…/tasks

Elenco task · permesso tasks:read

Parametri
  • scopefacoltativo "mine" | "all"
  • workspaceIdfacoltativo uuid
  • statusfacoltativo "open" | "done" | "all"
  • duefacoltativo "any" | "today" | "overdue" | "upcoming" | "none"
  • limitfacoltativo integer
POST…/tasks

Crea (task) · permesso tasks:write · evento task.created

Corpo JSON
  • workspaceId uuid
  • title string
  • descriptionfacoltativo string
  • priorityfacoltativo integer
  • dueDatefacoltativo data AAAA-MM-GG | null
  • dueTimefacoltativo string | null
  • assigneeIdsfacoltativo uuid[]
  • stateIdfacoltativo uuid
DELETE…/tasks/{id}

Elimina (task) · permesso tasks:write · evento task.deleted

GET…/tasks/{id}

Dettaglio (task) · permesso tasks:read

PATCH…/tasks/{id}

Modifica (task) · permesso tasks:write · evento task.updated

Corpo JSON
  • titlefacoltativo string
  • descriptionfacoltativo string
  • priorityfacoltativo integer
  • dueDatefacoltativo data AAAA-MM-GG | null
  • dueTimefacoltativo string | null
  • assigneeIdsfacoltativo uuid[]
  • stateIdfacoltativo uuid
  • workspaceIdfacoltativo uuid
GET…/tasks/{id}/comments

Elenco commenti · permesso tasks:read

POST…/tasks/{id}/comments

Crea (commenti) · permesso tasks:write · evento task.comment_created

Corpo JSON
  • body string
DELETE…/tasks/{id}/comments/{commentId}

Elimina (commenti) · permesso tasks:write

PATCH…/tasks/{id}/comments/{commentId}

Modifica (commenti) · permesso tasks:write

Corpo JSON
  • body string
POST…/tasks/{id}/complete

Completa (task) · permesso tasks:write · evento task.completed

POST…/tasks/{id}/reopen

Riapri (task) · permesso tasks:write · evento task.reopened

Calendario editoriale 31 operazioni
GET…/editorial/items

Elenco elementi · permesso editorial:read

Parametri
  • workspaceIdfacoltativo uuid
  • from data AAAA-MM-GG
  • to data AAAA-MM-GG
  • seriesIdfacoltativo uuid
  • includeUnscheduledfacoltativo "0" | "1"
POST…/editorial/items

Crea (elementi) · permesso editorial:write · evento content.created

Corpo JSON
  • workspaceId uuid
  • title string
  • plannedDatefacoltativo data AAAA-MM-GG | null
  • plannedTimefacoltativo string | null
  • seriesIdfacoltativo uuid | null
  • formatfacoltativo string | null
  • stateIdfacoltativo uuid
  • captionfacoltativo string
  • brieffacoltativo string
  • designUrlfacoltativo string | null | ""
  • assetUrlfacoltativo string | null | ""
  • channelIdsfacoltativo uuid[]
  • membersfacoltativo object[]
  • customFieldsfacoltativo object
DELETE…/editorial/items/{id}

Elimina (elementi) · permesso editorial:write · evento content.deleted

GET…/editorial/items/{id}

Dettaglio (elementi) · permesso editorial:read

PATCH…/editorial/items/{id}

Modifica (elementi) · permesso editorial:write · evento content.updated

Corpo JSON
  • titlefacoltativo string
  • plannedDatefacoltativo data AAAA-MM-GG | null
  • plannedTimefacoltativo string | null
  • seriesIdfacoltativo uuid | null
  • formatfacoltativo string | null
  • stateIdfacoltativo uuid
  • captionfacoltativo string
  • brieffacoltativo string
  • designUrlfacoltativo string | null | ""
  • assetUrlfacoltativo string | null | ""
  • channelIdsfacoltativo uuid[]
  • membersfacoltativo object[]
  • customFieldsfacoltativo object
POST…/editorial/items/{id}/approve

Approva (elementi) · permesso editorial:write · evento content.approved

PATCH…/editorial/items/{id}/channels/{channelId}

Modifica (canali) · permesso editorial:write

Corpo JSON
  • publishedUrl string | null | ""
GET…/editorial/items/{id}/channels/{channelId}/tiktok

Elenco tiktok · permesso editorial:read

POST…/editorial/items/{id}/channels/{channelId}/tiktok

Crea (tiktok) · permesso editorial:write

Parametri
  • privacy string
  • allowCommentfacoltativo "0" | "1"
  • allowDuetfacoltativo "0" | "1"
  • allowStitchfacoltativo "0" | "1"
  • brandOrganicfacoltativo "0" | "1"
  • brandedContentfacoltativo "0" | "1"
POST…/editorial/items/{id}/channels/{channelId}/youtube

Crea (youtube) · permesso editorial:write

Parametri
  • privacyfacoltativo "public" | "unlisted" | "private"
GET…/editorial/items/{id}/comments

Elenco commenti · permesso editorial:read

POST…/editorial/items/{id}/comments

Crea (commenti) · permesso editorial:write · evento content.comment_created

Corpo JSON
  • body string
POST…/editorial/items/{id}/request-changes

Chiedi modifiche (elementi) · permesso editorial:write · evento content.changes_requested

Corpo JSON
  • comment string
POST…/editorial/items/{id}/submit

Invia in revisione (elementi) · permesso editorial:write · evento content.submitted

GET…/workspaces/{wsId}/editorial

Elenco calendario editoriale · permesso editorial:read

PATCH…/workspaces/{wsId}/editorial

Aggiorna calendario editoriale · permesso editorial:write

Corpo JSON
  • formatsfacoltativo string[]
  • deadlineRulefacoltativo "monday_before_last_week" | "last_day_prev_month" | "none"
  • cardFieldsfacoltativo "series" | "format" | "channels" | "owner" | "state"[]
POST…/workspaces/{wsId}/editorial/channels

Crea (canali) · permesso editorial:write

Corpo JSON
  • platform "instagram" | "tiktok" | "youtube" | "facebook" | "threads" | "linkedin" | "x" | "website" | "newsletter" | "podcast" | "other"
  • handle string
DELETE…/workspaces/{wsId}/editorial/channels/{id}

Elimina (canali) · permesso editorial:write

PATCH…/workspaces/{wsId}/editorial/channels/{id}

Modifica (canali) · permesso editorial:write

Corpo JSON
  • platformfacoltativo "instagram" | "tiktok" | "youtube" | "facebook" | "threads" | "linkedin" | "x" | "website" | "newsletter" | "podcast" | "other"
  • handlefacoltativo string
POST…/workspaces/{wsId}/editorial/enable

Attiva il modulo (calendario editoriale) · permesso editorial:write

POST…/workspaces/{wsId}/editorial/fields

Crea (campi personalizzati) · permesso editorial:write

Corpo JSON
  • label string
  • fieldType "text" | "number" | "date" | "select" | "multi_select" | "url" | "checkbox" | "user"
  • optionsfacoltativo string[]
DELETE…/workspaces/{wsId}/editorial/fields/{id}

Elimina (campi personalizzati) · permesso editorial:write

PATCH…/workspaces/{wsId}/editorial/fields/{id}

Modifica (campi personalizzati) · permesso editorial:write

POST…/workspaces/{wsId}/editorial/generate

Genera il mese (calendario editoriale) · permesso editorial:write

Corpo JSON
  • month string
POST…/workspaces/{wsId}/editorial/series

Crea (rubriche) · permesso editorial:write

Corpo JSON
  • name string
  • descriptionfacoltativo string | null
  • colorfacoltativo "indigo" | "blue" | "teal" | "green" | "lime" | "amber" | "orange" | "red" | "pink" | "purple"
  • weekdaysfacoltativo integer[]
  • defaultTimefacoltativo string | null
  • defaultFormatfacoltativo string | null
  • defaultChannelIdsfacoltativo uuid[]
  • ownerUserIdfacoltativo uuid | null
DELETE…/workspaces/{wsId}/editorial/series/{id}

Elimina (rubriche) · permesso editorial:write

PATCH…/workspaces/{wsId}/editorial/series/{id}

Modifica (rubriche) · permesso editorial:write

Corpo JSON
  • namefacoltativo string
  • descriptionfacoltativo string | null
  • colorfacoltativo "indigo" | "blue" | "teal" | "green" | "lime" | "amber" | "orange" | "red" | "pink" | "purple"
  • weekdaysfacoltativo integer[]
  • defaultTimefacoltativo string | null
  • defaultFormatfacoltativo string | null
  • defaultChannelIdsfacoltativo uuid[]
  • ownerUserIdfacoltativo uuid | null
POST…/workspaces/{wsId}/editorial/states

Crea (stati dei task) · permesso editorial:write

Corpo JSON
  • name string
  • category "backlog" | "todo" | "in_progress" | "review" | "scheduled" | "done" | "canceled"
  • requiresApprovalfacoltativo boolean
  • colorfacoltativo "indigo" | "blue" | "teal" | "green" | "lime" | "amber" | "orange" | "red" | "pink" | "purple"
DELETE…/workspaces/{wsId}/editorial/states/{id}

Elimina (stati dei task) · permesso editorial:write

PATCH…/workspaces/{wsId}/editorial/states/{id}

Modifica (stati dei task) · permesso editorial:write

Corpo JSON
  • namefacoltativo string
  • categoryfacoltativo "backlog" | "todo" | "in_progress" | "review" | "scheduled" | "done" | "canceled"
  • requiresApprovalfacoltativo boolean
  • colorfacoltativo "indigo" | "blue" | "teal" | "green" | "lime" | "amber" | "orange" | "red" | "pink" | "purple"
POST…/workspaces/{wsId}/editorial/states/reorder

Riordina (stati dei task) · permesso editorial:write

Corpo JSON
  • ids uuid[]
Calendario ed eventi 9 operazioni
GET…/calendar

Elenco calendario · permesso calendar:read

Parametri
  • from data AAAA-MM-GG
  • to data AAAA-MM-GG
POST…/calendar/events

Crea (eventi) · permesso calendar:write · evento event.created

Corpo JSON
  • title string
  • date data AAAA-MM-GG
  • endDatefacoltativo data AAAA-MM-GG | null
  • startTimefacoltativo string | null
  • endTimefacoltativo string | null
  • locationfacoltativo string | null
  • descriptionfacoltativo string | null
  • workspaceIdfacoltativo uuid | null
DELETE…/calendar/events/{id}

Elimina (eventi) · permesso calendar:write · evento event.deleted

PATCH…/calendar/events/{id}

Modifica (eventi) · permesso calendar:write · evento event.updated

Corpo JSON
  • title string
  • date data AAAA-MM-GG
  • endDatefacoltativo data AAAA-MM-GG | null
  • startTimefacoltativo string | null
  • endTimefacoltativo string | null
  • locationfacoltativo string | null
  • descriptionfacoltativo string | null
  • workspaceIdfacoltativo uuid | null
DELETE…/connections/{id}

Elimina (collegamenti) · permesso calendar:write

PATCH…/connections/{id}

Modifica (collegamenti) · permesso calendar:write

Corpo JSON
  • selectedCalendarIds string[]
POST…/connections/{id}/sync

Sincronizza ora (collegamenti) · permesso calendar:write

GET…/connectors

Elenco connettori · permesso calendar:read

GET…/connectors/social

Elenco social · permesso calendar:read

CRM 29 operazioni
GET…/workspaces/{wsId}/crm

Elenco CRM · permesso crm:read

GET…/workspaces/{wsId}/crm/activities

Elenco attività · permesso crm:read

POST…/workspaces/{wsId}/crm/activities

Crea (attività) · permesso crm:write · evento activity.created

Corpo JSON
  • kind "note" | "call" | "meeting" | "email"
  • body string
  • companyIdfacoltativo uuid | null
  • contactIdfacoltativo uuid | null
  • dealIdfacoltativo uuid | null
GET…/workspaces/{wsId}/crm/chart

Elenco grafico · permesso crm:read

GET…/workspaces/{wsId}/crm/companies

Elenco aziende · permesso crm:read

POST…/workspaces/{wsId}/crm/companies

Crea (aziende) · permesso crm:write · evento company.created

Corpo JSON
  • name string
  • domainfacoltativo string | null
  • industryfacoltativo string | null
  • notesfacoltativo string | null
  • linkedinUrlfacoltativo string | null
  • sectorfacoltativo "marketing" | "saas" | "ecommerce" | "other" | null
  • sheetDatafacoltativo object
DELETE…/workspaces/{wsId}/crm/companies/{id}

Elimina (aziende) · permesso crm:write · evento company.deleted

GET…/workspaces/{wsId}/crm/companies/{id}

Dettaglio (aziende) · permesso crm:read

PATCH…/workspaces/{wsId}/crm/companies/{id}

Modifica (aziende) · permesso crm:write · evento company.updated

Corpo JSON
  • namefacoltativo string
  • domainfacoltativo string | null
  • industryfacoltativo string | null
  • notesfacoltativo string | null
  • linkedinUrlfacoltativo string | null
  • sectorfacoltativo "marketing" | "saas" | "ecommerce" | "other" | null
  • sheetDatafacoltativo object
GET…/workspaces/{wsId}/crm/contacts

Elenco contatti · permesso crm:read

POST…/workspaces/{wsId}/crm/contacts

Crea (contatti) · permesso crm:write · evento contact.created

Corpo JSON
  • companyIdfacoltativo uuid | null
  • firstName string
  • lastNamefacoltativo string
  • emailfacoltativo string | null | ""
  • phonefacoltativo string | null
  • roleTitlefacoltativo string | null
  • notesfacoltativo string | null
  • linkedinUrlfacoltativo string | null
DELETE…/workspaces/{wsId}/crm/contacts/{id}

Elimina (contatti) · permesso crm:write · evento contact.deleted

GET…/workspaces/{wsId}/crm/contacts/{id}

Dettaglio (contatti) · permesso crm:read

PATCH…/workspaces/{wsId}/crm/contacts/{id}

Modifica (contatti) · permesso crm:write · evento contact.updated

Corpo JSON
  • companyIdfacoltativo uuid | null
  • firstNamefacoltativo string
  • lastNamefacoltativo string
  • emailfacoltativo string | null | ""
  • phonefacoltativo string | null
  • roleTitlefacoltativo string | null
  • notesfacoltativo string | null
  • linkedinUrlfacoltativo string | null
GET…/workspaces/{wsId}/crm/contacts/{id}/thread

Elenco conversazione · permesso crm:read

GET…/workspaces/{wsId}/crm/deals

Elenco trattative · permesso crm:read

POST…/workspaces/{wsId}/crm/deals

Crea (trattative) · permesso crm:write · evento deal.created

Corpo JSON
  • title string
  • companyIdfacoltativo uuid | null
  • contactIdfacoltativo uuid | null
  • valueCentsfacoltativo integer
  • stateIdfacoltativo uuid
  • probabilityfacoltativo integer
  • expectedCloseDatefacoltativo data AAAA-MM-GG | null
  • ownerUserIdfacoltativo uuid | null
  • lostReasonfacoltativo string | null
DELETE…/workspaces/{wsId}/crm/deals/{id}

Elimina (trattative) · permesso crm:write · evento deal.deleted

GET…/workspaces/{wsId}/crm/deals/{id}

Dettaglio (trattative) · permesso crm:read

PATCH…/workspaces/{wsId}/crm/deals/{id}

Modifica (trattative) · permesso crm:write · evento deal.updated

Corpo JSON
  • titlefacoltativo string
  • companyIdfacoltativo uuid | null
  • contactIdfacoltativo uuid | null
  • valueCentsfacoltativo integer
  • stateIdfacoltativo uuid
  • probabilityfacoltativo integer
  • expectedCloseDatefacoltativo data AAAA-MM-GG | null
  • ownerUserIdfacoltativo uuid | null
  • lostReasonfacoltativo string | null
POST…/workspaces/{wsId}/crm/deals/{id}/move

Sposta di fase (trattative) · permesso crm:write · evento deal.moved

Corpo JSON
  • stateId uuid
  • beforeIdfacoltativo uuid | null
  • afterIdfacoltativo uuid | null
GET…/workspaces/{wsId}/crm/emails

Elenco email · permesso crm:read

POST…/workspaces/{wsId}/crm/emails

Crea (email) · permesso crm:write · evento email.sent

Corpo JSON
  • contactId uuid
  • dealIdfacoltativo uuid | null
  • subject string
  • body string
  • threadIdfacoltativo string | null
  • inReplyTofacoltativo string | null
POST…/workspaces/{wsId}/crm/enable

Attiva il modulo (CRM) · permesso crm:write

GET…/workspaces/{wsId}/crm/gmail

Elenco Gmail · permesso crm:read

POST…/workspaces/{wsId}/crm/stages

Crea (fasi) · permesso crm:write

Corpo JSON
  • name string
  • category "backlog" | "in_progress" | "done" | "canceled"
DELETE…/workspaces/{wsId}/crm/stages/{id}

Elimina (fasi) · permesso crm:write

PATCH…/workspaces/{wsId}/crm/stages/{id}

Modifica (fasi) · permesso crm:write

Corpo JSON
  • namefacoltativo string
  • categoryfacoltativo "backlog" | "in_progress" | "done" | "canceled"
POST…/workspaces/{wsId}/crm/stages/reorder

Riordina (fasi) · permesso crm:write

Corpo JSON
  • ids uuid[]
Contabilità 13 operazioni
GET…/workspaces/{wsId}/finance

Elenco contabilità · permesso finance:read

POST…/workspaces/{wsId}/finance/accounts

Crea (conti) · permesso finance:write

Corpo JSON
  • name string
  • kindfacoltativo "cash" | "bank" | "card" | "other"
  • openingBalanceCentsfacoltativo integer
DELETE…/workspaces/{wsId}/finance/accounts/{id}

Elimina (conti) · permesso finance:write

PATCH…/workspaces/{wsId}/finance/accounts/{id}

Modifica (conti) · permesso finance:write

Corpo JSON
  • namefacoltativo string
  • kindfacoltativo "cash" | "bank" | "card" | "other"
  • openingBalanceCentsfacoltativo integer
POST…/workspaces/{wsId}/finance/categories

Crea (categorie) · permesso finance:write

Corpo JSON
  • name string
  • kind "income" | "expense"
  • colorfacoltativo string | null
DELETE…/workspaces/{wsId}/finance/categories/{id}

Elimina (categorie) · permesso finance:write

PATCH…/workspaces/{wsId}/finance/categories/{id}

Modifica (categorie) · permesso finance:write

Corpo JSON
  • namefacoltativo string
  • kindfacoltativo "income" | "expense"
  • colorfacoltativo string | null
GET…/workspaces/{wsId}/finance/chart

Elenco grafico · permesso finance:read

POST…/workspaces/{wsId}/finance/enable

Attiva il modulo (contabilità) · permesso finance:write

GET…/workspaces/{wsId}/finance/transactions

Elenco movimenti · permesso finance:read

POST…/workspaces/{wsId}/finance/transactions

Crea (movimenti) · permesso finance:write · evento transaction.created

Corpo JSON
  • accountId uuid
  • categoryIdfacoltativo uuid | null
  • kind "income" | "expense"
  • amountCents integer
  • occurredOnfacoltativo data AAAA-MM-GG
  • descriptionfacoltativo string
DELETE…/workspaces/{wsId}/finance/transactions/{id}

Elimina (movimenti) · permesso finance:write · evento transaction.deleted

PATCH…/workspaces/{wsId}/finance/transactions/{id}

Modifica (movimenti) · permesso finance:write · evento transaction.updated

Corpo JSON
  • accountIdfacoltativo uuid
  • categoryIdfacoltativo uuid | null
  • kindfacoltativo "income" | "expense"
  • amountCentsfacoltativo integer
  • occurredOnfacoltativo data AAAA-MM-GG
  • descriptionfacoltativo string
Persone (ferie e permessi) 8 operazioni
GET…/workspaces/{wsId}/hr

Elenco persone · permesso hr:read

GET…/workspaces/{wsId}/hr/employees

Elenco dipendenti · permesso hr:read

PATCH…/workspaces/{wsId}/hr/employees/{userId}

Modifica (dipendenti) · permesso hr:write

Corpo JSON
  • jobTitlefacoltativo string | null
  • employmentTypefacoltativo "full_time" | "part_time" | "contractor"
  • startDatefacoltativo data AAAA-MM-GG | null
  • leaveBalanceDaysfacoltativo number
POST…/workspaces/{wsId}/hr/enable

Attiva il modulo (persone) · permesso hr:write

GET…/workspaces/{wsId}/hr/leave-requests

Elenco richieste di ferie · permesso hr:read

POST…/workspaces/{wsId}/hr/leave-requests

Crea (richieste di ferie) · permesso hr:write · evento leave_request.created

Corpo JSON
  • kind "vacation" | "sick" | "other"
  • startDate data AAAA-MM-GG
  • endDate data AAAA-MM-GG
  • days number
  • notefacoltativo string | null
DELETE…/workspaces/{wsId}/hr/leave-requests/{id}

Elimina (richieste di ferie) · permesso hr:write · evento leave_request.deleted

POST…/workspaces/{wsId}/hr/leave-requests/{id}/review

Approva o rifiuta (richieste di ferie) · permesso hr:write · evento leave_request.reviewed

Corpo JSON
  • status "approved" | "rejected"
Ticket 9 operazioni
GET…/workspaces/{wsId}/tickets

Elenco ticket · permesso tickets:read

POST…/workspaces/{wsId}/tickets/enable

Attiva il modulo (ticket) · permesso tickets:write

GET…/workspaces/{wsId}/tickets/items

Elenco elementi · permesso tickets:read

POST…/workspaces/{wsId}/tickets/items

Crea (elementi) · permesso tickets:write · evento ticket.created

Corpo JSON
  • subject string
  • descriptionfacoltativo string
  • priorityfacoltativo 0 | 1 | 2 | 3
  • assigneeIdfacoltativo uuid | null
DELETE…/workspaces/{wsId}/tickets/items/{id}

Elimina (elementi) · permesso tickets:write · evento ticket.deleted

GET…/workspaces/{wsId}/tickets/items/{id}

Dettaglio (elementi) · permesso tickets:read

PATCH…/workspaces/{wsId}/tickets/items/{id}

Modifica (elementi) · permesso tickets:write · evento ticket.updated

Corpo JSON
  • subjectfacoltativo string
  • descriptionfacoltativo string
  • priorityfacoltativo 0 | 1 | 2 | 3
  • assigneeIdfacoltativo uuid | null
  • stateIdfacoltativo uuid
GET…/workspaces/{wsId}/tickets/items/{id}/comments

Elenco commenti · permesso tickets:read

POST…/workspaces/{wsId}/tickets/items/{id}/comments

Crea (commenti) · permesso tickets:write · evento ticket.comment_created

Corpo JSON
  • body string
Chat (solo canali degli spazi) 12 operazioni
POST…/chat/channels

Crea (canali) · permesso chat:write · evento channel.created

Corpo JSON
  • workspaceId uuid
  • name string
  • topicfacoltativo string | null
  • isPrivatefacoltativo boolean
DELETE…/chat/channels/{id}

Elimina (canali) · permesso chat:write

PATCH…/chat/channels/{id}

Modifica (canali) · permesso chat:write

POST…/chat/channels/{id}/join

Entra nel canale (canali) · permesso chat:write

POST…/chat/channels/{id}/leave

Esci dal canale (canali) · permesso chat:write

POST…/chat/channels/{id}/members

Crea (membri) · permesso chat:write

GET…/chat/channels/{id}/messages

Elenco messaggi · permesso chat:read

POST…/chat/channels/{id}/messages

Crea (messaggi) · permesso chat:write · evento message.created

Corpo JSON
  • body string
PATCH…/chat/channels/{id}/messages/{messageId}

Modifica (messaggi) · permesso chat:write · evento message.updated

Corpo JSON
  • body string
GET…/chat/conversations

Elenco conversazioni · permesso chat:read

POST…/chat/dm

Crea (messaggi diretti) · permesso chat:write

Corpo JSON
  • userId uuid
POST…/chat/groups

Crea (gruppi) · permesso chat:write

Corpo JSON
  • name string
  • memberIds uuid[]
Documenti 8 operazioni
GET…/pages

Elenco documenti · permesso pages:read

POST…/pages

Crea (documenti) · permesso pages:write · evento page.created

Corpo JSON
  • workspaceId uuid
  • parentPageIdfacoltativo uuid | null
  • titlefacoltativo string
  • iconfacoltativo string | null
  • fromTemplateIdfacoltativo uuid
DELETE…/pages/{id}

Elimina (documenti) · permesso pages:write · evento page.deleted

GET…/pages/{id}

Dettaglio (documenti) · permesso pages:read

PATCH…/pages/{id}

Modifica (documenti) · permesso pages:write · evento page.updated

Corpo JSON
  • titlefacoltativo string
  • iconfacoltativo string | null
  • contentfacoltativo object
  • isTemplatefacoltativo boolean
  • visibilityfacoltativo "workspace" | "private"
  • parentPageIdfacoltativo uuid | null
POST…/pages/{id}/restore

Ripristina versione (documenti) · permesso pages:write

Corpo JSON
  • versionId uuid
GET…/pages/{id}/versions

Elenco versioni · permesso pages:read

GET…/pages/templates

Elenco modelli · permesso pages:read

Social: account, statistiche, campagne 17 operazioni
GET…/content-labels

Elenco etichette · permesso social:read

POST…/content-labels

Crea (etichette) · permesso social:write

Corpo JSON
  • name string
  • color string
DELETE…/content-labels/{id}

Elimina (etichette) · permesso social:write

PATCH…/content-labels/{id}

Modifica (etichette) · permesso social:write

Corpo JSON
  • name string
  • color string
GET…/social-accounts

Elenco account social · permesso social:read

PUT…/social-accounts/assignment

Aggiorna assignment · permesso social:write

Corpo JSON
  • connectionId uuid
  • platform "facebook" | "instagram" | "threads" | "youtube" | "tiktok"
  • pageId string | null
  • workspaceId uuid | null
DELETE…/social-connections/{id}

Elimina (social-connections) · permesso social:write

PATCH…/social-connections/{id}

Modifica (social-connections) · permesso social:write

Corpo JSON
  • selectedPageIds string[]
GET…/social-content

Elenco contenuti social · permesso social:read

PATCH…/social-content/{connectionId}/{externalId}/labels

Aggiorna labels · permesso social:write

Corpo JSON
  • workspaceId uuid
  • labelIds uuid[]
GET…/social-insights

Elenco statistiche social · permesso social:read

GET…/social-marketing

Elenco campagne · permesso social:read

GET…/social-marketing/campaigns

Elenco campagne · permesso social:read

PATCH…/social-marketing/campaigns/{campaignId}

Modifica (campagne) · permesso social:write

Corpo JSON
  • workspaceId uuid
  • adAccountId string
  • status "ACTIVE" | "PAUSED"
GET…/workspace-channels

Elenco canali social dello spazio · permesso social:read

DELETE…/workspace-channels/{platform}

Elimina (canali social dello spazio) · permesso social:write

PUT…/workspace-channels/{platform}

Modifica (canali social dello spazio) · permesso social:write

Corpo JSON
  • connectionId uuid
  • pageId string | null
Home, notifiche e ricerca 10 operazioni
GET/api/v1/key

Informazioni sulla chiave in uso · permesso qualsiasi

GET…/home

Elenco home · permesso general:read

PATCH…/me/nickname

Aggiorna soprannome · permesso general:write

Corpo JSON
  • nickname string | null
GET…/me/preferences/{key}

Dettaglio (preferenze) · permesso general:read

PATCH…/me/preferences/{key}

Modifica (preferenze) · permesso general:write

Corpo JSON
  • valuefacoltativo oggetto
GET…/me/profile

Elenco profilo · permesso general:read

GET…/notifications

Elenco notifiche · permesso general:read

POST…/notifications/read

Segna come lette (notifiche) · permesso general:write

Corpo JSON
  • idsfacoltativo uuid[]
  • allfacoltativo boolean
GET…/people/search

Elenco ricerca · permesso general:read

GET…/search

Elenco ricerca · permesso general:read

Parametri
  • q string

Hai bisogno di aiuto o di un’operazione che manca? Scrivi a luca@globaly.it.

Prova Unitly con il tuo team.

Crea la tua azienda in pochi minuti e invita i colleghi. Senza carta di credito.

Inizia gratis