Sviluppatori

PUT/tcr/v2/campaign/{campaignId}

Aggiornare una campagna di messaggistica

Modifica i contenuti della campagna, verifica il risultato salvato e gestisci esplicitamente le richieste di revisione e le decisioni sul rinnovo.

Su questa pagina
  1. Correggere una campagna senza creare un'altra registrazione
  2. Scegliere i campi effettivamente modificati
  3. Inviare una correzione mirata
  4. Leggere nuovamente la campagna
  5. Gestire le restrizioni e i risultati incerti

Correggere una campagna senza creare un'altra registrazione

Usa questa rotta per modificare la descrizione, gli esempi di messaggi, la spiegazione del consenso o le caratteristiche dei contenuti supportate di una campagna esistente. Mantieni l'identificativo della campagna e il marchio e il caso d'uso attuali. Una nuova registrazione non è il meccanismo con cui ritentare la correzione di una campagna esistente.

Autenticati con un account API abilitato tramite HTTPS, da un indirizzo IP di origine consentito. È accessibile soltanto una campagna appartenente a quell'account. Leggine lo stato attuale prima di preparare le modifiche; le campagne scadute non possono essere aggiornate tramite questo flusso di lavoro.

curl --silent --show-error --fail-with-body --user "$API_USER:$API_PASSWORD" \
  "https://api.multitel.net/tcr/v2/campaign/$CAMPAIGN_ID"

Scegliere i campi effettivamente modificati

Prepara campaign-update.json con le modifiche supportate. Il portale attuale invia soltanto i campi modificati della campagna e non invia brandId, usecase, campaignId o informazioni di stato presenti solo nelle risposte. Anche gli aggiornamenti diretti tramite API usano un oggetto JSON contenente i campi, non la struttura contenitore changes/version del portale.

Campi per l'aggiornamento della campagna
CampiCosa fornire
description, messageFlowUna descrizione accurata del servizio e delle modalità con cui le persone prestano il consenso, ricevono messaggi e revocano il consenso. Ciascun campo ammette 40–4096 caratteri.
sample1–sample5Esempi realistici per questa campagna, con 20–1024 caratteri per ciascun esempio non vuoto. Mantieni il numero di esempi richiesto dal caso d'uso qualificato; non inviare messaggi non pertinenti.
helpMessage, optinMessage, optoutMessageLe risposte pertinenti destinate ai destinatari, fino a 1024 caratteri. Quando richiesto, rispetta il minimo di 20 caratteri e descrivi il servizio effettivo. Esamina i requisiti attuali sul consenso prima di svuotare un campo.
optinKeywords, optoutKeywords, helpKeywordsParole chiave separate da virgole, senza spazi, fino a 255 caratteri. Mantieni coerenti le risposte e la gestione operativa delle parole chiave.
privacyPolicyLink, termsAndConditionsLinkURL pubblici pertinenti, fino a 2048 caratteri, che descrivano le prassi effettive di questo servizio.
embeddedLinkSampleUn collegamento rappresentativo di quelli che saranno contenuti nei messaggi, fino a 255 caratteri.
numberPool, embeddedLink, embeddedPhone, ageGated, directLendingLe caratteristiche effettive della campagna come valori booleani JSON. Per disattivarne una, usa false, non la stringa "false".
autoRenewalLo schema dell'API pubblica supporta questo valore booleano JSON, sebbene il normale editor dei contenuti della campagna nel portale non lo renda disponibile. Disattivare il rinnovo non annulla un impegno minimo esistente né elimina gli addebiti già dovuti.
resellerIdLo schema consente anche l'associazione a un rivenditore. Questa funzionalità non rientra nel normale modulo del portale per la correzione dei contenuti. Non usare questo campo per trasferire una campagna da un cliente a un altro e non presumere che l'API configuri il servizio dell'operatore per un rivenditore diverso.

Lo schema di aggiornamento non prevede brandId, usecase, subscriberOptin, subscriberOptout o subscriberHelp come campi modificabili. Non copiare in un aggiornamento l'intero corpo di una richiesta di creazione della campagna. Consulta la qualificazione attuale quando esamini i requisiti dei messaggi.

Inviare una correzione mirata

Questo esempio descrive, a scopo illustrativo, un servizio di promemoria per appuntamenti. Prima di usarlo, adattalo al servizio effettivo della campagna e al relativo flusso di acquisizione del consenso.

{
  "description": "Appointment reminders requested by customers of the registered business.",
  "sample1": "Example business: Your requested appointment reminder is ready. Reply STOP to opt out."
}
curl --silent --show-error --fail-with-body --user "$API_USER:$API_PASSWORD" \
  --request PUT \
  --header 'Content-Type: application/json' \
  --header "Idempotency-Key: $IDEMPOTENCY_KEY" \
  --data-binary @campaign-update.json \
  "https://api.multitel.net/tcr/v2/campaign/$CAMPAIGN_ID"

Per ripetere lo stesso invio previsto, mantieni la stessa chiave e gli stessi identici metodo, percorso, parametri di query e byte del corpo. Se il contenuto cambia, occorre una richiesta esaminata separatamente; non cambiare le chiavi alla cieca dopo un timeout. Una richiesta completata può riproporre un errore memorizzato nella cache e un duplicato di una richiesta in elaborazione può restituire 409 con Retry-After.

Leggere nuovamente la campagna

La risposta HTTP 200 restituisce direttamente un oggetto JSON della campagna. Verifica campaignId, quindi esegui una richiesta GET per la stessa campagna e confronta i campi interessati. Un salvataggio riuscito non richiede di per sé un'altra revisione da parte dell'operatore, non modifica le assegnazioni dei numeri, non attiva l'invio e non invia messaggi.

Il portale controlla la versione del modulo prima di salvare e legge nuovamente la campagna dopo il salvataggio. L'endpoint pubblico PUT non impone il controllo di quella versione del portale: coordina le modifiche simultanee. Una chiave di idempotenza non rileva un aggiornamento effettuato da un altro utente che modifica la campagna.

Se il portale mostra un rifiuto in fase di revisione ancora da risolvere, correggi prima il contenuto, poi usa l'azione separata per richiedere una revisione, quando disponibile. Questa azione controlla la campagna attuale nell'ambiente di produzione e lo stato di condivisione. Il solo salvataggio dei contenuti non la attiva e l'esistenza di un identificativo della campagna non ne dimostra l'approvazione.

Nel servizio attuale, i normali aggiornamenti PUT delle campagne non attivano un addebito separato per la registrazione della campagna. Continuano ad applicarsi i canoni mensili esistenti, gli impegni minimi, il noleggio dei numeri e i costi di utilizzo dei messaggi. Per le tariffe attualmente configurate per le campagne, consulta le tariffe delle campagne.

Gestire le restrizioni e i risultati incerti

Per HTTP 400, leggi l'errore relativo al campo e controlla le lunghezze, il testo del consenso e lo stato della campagna. Per 401, 403 o 404, verifica le credenziali API, l'IP di origine consentito e l'appartenenza della campagna all'account. Per 429, rispetta Retry-After. Per 500, 502 o una richiesta interrotta, conserva l'identificativo della campagna e l'eventuale requestId, quindi verifica e riconcilia il record esistente prima di un altro invio.

L'istantanea locale dipende dal corpo restituito. Una risposta parziale non vuota può omettere campi precedenti, inclusi i metadati del rinnovo; una risposta vuota può mantenere valori obsoleti. Verifica il risultato completo della richiesta GET anziché considerare il solo esito positivo come prova che tutti i campi siano stati conservati. Segnala le differenze irrisolte all'assistenza. Questa rotta non aggiorna atomicamente le assegnazioni degli operatori e non fornisce un'azione generale di ripristino dell'attivazione presso l'operatore.