Skip to content

Campagne

Crea campagne di chiamate in uscita con più contatti, numeri alternativi per contatto e rotazione opzionale del caller ID tra i tentativi.

Creare una campagna

POST /v1/campaigns

Crea una campagna in stato DRAFT (o SCHEDULED se imposti scheduledAt). Con startImmediately: true la avvii nella stessa richiesta.

Scope richiesto: campaigns:write

Corpo della richiesta

CampoTipoObbligatorioDescrizione
namestringNome della campagna
agentIdstringID agente AI
fromNumberstringCaller ID principale (E.164, deve appartenere alla tua org)
contactsarrayRighe contatto (vedi sotto)
descriptionstringNoDescrizione opzionale
fromNumberAttemptsstring[]NoNumeri in uscita per tentativo (E.164). Usato quando maxRetries > 0
fromNumberStrategystringNorolling, clamp o custom — scelta di fromNumberAttempts se ci sono meno numeri dei tentativi
contactAttemptStrategystringNorolling, clamp o custom — scelta di contact_attempts se ci sono meno alternativi dei tentativi
variableMappingobjectNoMappa campi contatto → variabili prompt agente
maxRetriesintegerNoRetry per chiamata fallita (0–5, default 0)
retryDelayMinutesintegerNoMinuti tra i retry (min 5 se maxRetries > 0, default 30)
callingDaysinteger[]NoGiorni consentiti (0 = domenica … 6 = sabato)
callingStartTimestringNoInizio finestra (HH:MM)
callingEndTimestringNoFine finestra (HH:MM)
timezonestringNoTimezone IANA (default Europe/Rome)
maxConcurrencyintegerNoChiamate simultanee massime
keepFreeForInboundintegerNoSlot riservati all'inbound (default 0)
scheduledAtstringNoISO 8601 — programmazione (SCHEDULED)
startImmediatelybooleanNoSe true, avvia subito dopo la creazione

Oggetto contatto

Ogni elemento di contacts deve avere phone_number (E.164). Gli altri campi possono essere mappati alle variabili del prompt con variableMapping.

CampoTipoDescrizione
phone_numberstringObbligatorio. Numero chiamato al tentativo 1
contact_attemptsarrayNumeri/variabili alternativi per i retry (tentativo 2+)

Ogni voce in contact_attempts è un oggetto con almeno phone_number e campi opzionali che sovrascrivono quelli del contatto principale per quel tentativo.

Tentativi totali per contatto = 1 + maxRetries.

Esempio

bash
curl -X POST https://api.replicer.ai/v1/campaigns \
  -H "Authorization: Bearer rpl_live_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Follow-up Q2",
    "agentId": "clx-agent-001",
    "fromNumber": "+39000000001",
    "fromNumberAttempts": ["+39000000001", "+39000000002"],
    "fromNumberStrategy": "rolling",
    "contactAttemptStrategy": "clamp",
    "maxRetries": 2,
    "retryDelayMinutes": 30,
    "contacts": [
      {
        "phone_number": "+39111111111",
        "name": "Mario Rossi",
        "company": "Acme",
        "contact_attempts": [
          { "phone_number": "+39222222222", "name": "Luigi Bianchi" }
        ]
      }
    ],
    "variableMapping": {
      "customer_name": "name",
      "company_name": "company"
    },
    "startImmediately": true
  }'

Avviare una campagna

POST /v1/campaigns/{id}/start

Avvia o riprende una campagna (DRAFT, SCHEDULED o PAUSED).

Scope richiesto: campaigns:write


Elencare le campagne

GET /v1/campaigns

Scope richiesto: campaigns:read


Dettaglio campagna

GET /v1/campaigns/{id}

Restituisce la campagna con contacts, fromNumberAttempts (in E.164) e contatori di avanzamento.

Scope richiesto: campaigns:read

Strategie di tentativo

ValoreComportamento
rollingRuota ciclicamente nella lista
clampUsa ogni voce in ordine, poi ripete l'ultima
customCaller ID: un numero per slot. Contatti: ogni alternativo una volta, poi il numero principale

Replicer API Documentation