{"id":84110,"date":"2026-05-26T09:51:19","date_gmt":"2026-05-26T08:51:19","guid":{"rendered":"https:\/\/kinsta.com\/it\/?p=84110&#038;preview=true&#038;preview_id=84110"},"modified":"2026-06-01T13:56:02","modified_gmt":"2026-06-01T12:56:02","slug":"automatizza-wordpress-salesforce-kinsta-api","status":"publish","type":"post","link":"https:\/\/kinsta.com\/it\/blog\/automatizza-wordpress-salesforce-kinsta-api\/","title":{"rendered":"Come automatizzare il go-live di WordPress da Salesforce utilizzando l&#8217;API Kinsta"},"content":{"rendered":"<p>Quando un accordo viene chiuso in Salesforce, il sito che rappresenta dipende ancora da una serie di passaggi manuali separati per andare in produzione. Chi si <a href=\"https:\/\/kinsta.com\/it\/blog\/tipi-di-developer\/\">occupa dello sviluppo<\/a> deve trovare il sito del cliente giusto in <a href=\"https:\/\/kinsta.com\/it\/mykinsta\/\">MyKinsta<\/a>, creare un backup e <a href=\"https:\/\/kinsta.com\/it\/docs\/hosting-wordpress\/ambienti-di-staging\/\">passare dallo staging alla produzione<\/a>, il tutto al momento giusto.<\/p>\n<p>Utilizzando l&#8217;<a href=\"https:\/\/kinsta.com\/it\/docs\/kinsta-api\/\">API di Kinsta<\/a>, puoi collegare queste due parti del flusso di lavoro in modo tale che l&#8217;approvazione dell&#8217;accordo attivi automaticamente il lancio. Invece di affidare a qualcuno l&#8217;esecuzione di ogni fase, il processo viene eseguito non appena l&#8217;opportunit\u00e0 raggiunge la fase desiderata.<\/p>\n<p>La configurazione \u00e8 semplice: avvia un batch di attivit\u00e0 MyKinsta quando un&#8217;<a href=\"https:\/\/developer.salesforce.com\/docs\/atlas.en-us.object_reference.meta\/object_reference\/sforce_api_objects_opportunity.htm\" target=\"_blank\" rel=\"noopener noreferrer\">opportunit\u00e0 Salesforce<\/a> viene aggiornata ed elimina la necessit\u00e0 di un intervento manuale dopo la distribuzione. Nel frattempo, il tuo cliente ottiene un percorso pi\u00f9 rapido dall&#8217;approvazione al sito attivo, senza dover aspettare i passaggi tra i vari team.<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>Cosa serve prima di iniziare<\/h2>\n<p>Per seguire questo tutorial, serve un <a href=\"https:\/\/kinsta.com\/it\/registrazione\/\">account Kinsta<\/a> con un sito WordPress che abbia sia un <a href=\"https:\/\/kinsta.com\/it\/docs\/hosting-wordpress\/ambienti-di-staging\/\">ambiente di staging<\/a> che un ambiente live, un account Salesforce con accesso a <a href=\"https:\/\/trailhead.salesforce.com\/content\/learn\/modules\/record-triggered-flows\/build-a-record-triggered-flow\" target=\"_blank\" rel=\"noopener noreferrer\">Flow Builder<\/a> e <a href=\"https:\/\/kinsta.com\/knowledgebase\/what-is-node-js\/\">Node.js<\/a> installato localmente per il middleware.<\/p>\n<p>Per autenticarti con l&#8217;API di Kinsta, vai su <strong>Il tuo nome<\/strong> &gt; <strong>Impostazioni azienda<\/strong> &gt; <strong>Chiavi API<\/strong> in <a href=\"https:\/\/my.kinsta.com\/?lang=it\">MyKinsta<\/a> e clicca su <strong>Crea chiave API<\/strong>.<\/p>\n<figure id=\"attachment_209233\" aria-describedby=\"caption-attachment-209233\" style=\"width: 1200px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-209233\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2026\/04\/api-keys-2.png\" alt=\"La dashboard di MyKinsta mostra la schermata delle chiavi API, che include due chiavi API esistenti, insieme a un pulsante per crearne una nuova.\" width=\"1200\" height=\"419\"><figcaption id=\"caption-attachment-209233\" class=\"wp-caption-text\">La dashboard di MyKinsta mostra la schermata delle chiavi API.<\/figcaption><\/figure>\n<p>Dai un nome alla chiave, imposta una scadenza e clicca su <strong>Genera<\/strong>. La chiave viene visualizzata solo una volta, quindi copiala prima di chiudere la finestra. Memorizzala in un file <code>.env<\/code> nella root del progetto insieme all&#8217;<strong>ID azienda<\/strong>, che trovi in <strong>Impostazioni azienda<\/strong> &gt; <strong>Dettagli di fatturazione<\/strong>:<\/p>\n<pre><code class=\"language-bash\">KINSTA_API_KEY=your_api_key_here\nKINSTA_COMPANY_ID=your_company_id_here\n<\/code><\/pre>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-info\">\n            <h3>Info<\/h3>\n        <p>Una chiave API ha lo stesso livello di accesso del ruolo che l&#8217;ha generata. Una chiave di livello sviluppatore ha permessi pi\u00f9 ristretti rispetto a una generata dal proprietario o dall&#8217;amministratore azienda. Se una richiesta restituisce un errore di autorizzazione, questa \u00e8 la prima cosa da controllare.<\/p>\n<\/aside>\n\n<p>\u00c8 inoltre necessario un campo di testo personalizzato sull&#8217;oggetto Salesforce Opportunity per memorizzare l&#8217;ID del sito Kinsta per ogni progetto cliente. Vai su <strong>Setup<\/strong> &gt; <strong>Object Manager<\/strong>, poi su <strong>Opportunity<\/strong> &gt; <strong>Fields and Relationship<\/strong>.<\/p>\n<figure id=\"attachment_209234\" aria-describedby=\"caption-attachment-209234\" style=\"width: 1200px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-209234\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2026\/04\/new-fields-relationships.png\" alt=\"La sezione Fields and Relationship nelle pagine delle opzioni di Salesforce Setup.\" width=\"1200\" height=\"294\"><figcaption id=\"caption-attachment-209234\" class=\"wp-caption-text\">La sezione Fields and Relationship nelle pagine delle opzioni di Salesforce Setup.<\/figcaption><\/figure>\n<p>Qui, aggiungi una <strong>Field Label<\/strong> e Salesforce genera un <strong>Field Name<\/strong> da annotare. Imposta la <strong>lunghezza<\/strong> a <strong>255<\/strong> e salva le modifiche.<\/p>\n<p>L&#8217;ID del sito \u00e8 un UUID che Kinsta assegna al momento della creazione. Appare nell&#8217;URL di MyKinsta quando apri un sito, oppure puoi recuperarlo una volta chiamando <code>GET \/sites<\/code> con la tua chiave API:<\/p>\n<pre><code class=\"language-bash\">https:\/\/my.kinsta.com\/sites\/details\/hyut4927-d324-4044-b794-67ap0rbf20bj\/\u2026\n<\/code><\/pre>\n<p>Utilizza l&#8217;ID del sito in un campo personalizzato di ogni Opportunity per attivare l&#8217;intero flusso di lavoro.<\/p>\n<h2>Come automatizzare il go-live di WordPress da Salesforce utilizzando l&#8217;API di Kinsta<\/h2>\n<p>Dal lato di Salesforce, un <a href=\"https:\/\/admin.salesforce.com\/blog\/2023\/what-is-a-record-triggered-flow\" target=\"_blank\" rel=\"noopener noreferrer\">flusso attivato dal record<\/a> monitora la fase dell&#8217;opportunit\u00e0 e lancia una chiamata HTTP nel momento in cui la fase si trasforma.<\/p>\n<p>Il middleware Node.js riceve l&#8217;ID del sito, chiama l&#8217;API Kinsta per eseguire il backup dell&#8217;ambiente di staging, attende che l&#8217;operazione sia completata, quindi invia lo staging alla produzione. La maggior parte del lavoro si svolge in Salesforce per garantire che siano impostati i giusti permessi e accessi.<\/p>\n<h3>1. Impostare una credenziale nominata<\/h3>\n<p>Salesforce ha un modo efficiente per memorizzare le chiavi API. Si tratta di una External Credential, che contiene il segreto vero e proprio, e di una <a href=\"https:\/\/developer.salesforce.com\/docs\/platform\/named-credentials\/guide\/get-started.html\" target=\"_blank\" rel=\"noopener noreferrer\">Named Credential<\/a>, che definisce l&#8217;URL dell&#8217;endpoint e si connette ad esso.<\/p>\n<p>All&#8217;interno di Salesforce, apri la schermata <strong>Setup<\/strong> dal menu iniziale:<\/p>\n<figure id=\"attachment_209236\" aria-describedby=\"caption-attachment-209236\" style=\"width: 1200px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-209236\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2026\/04\/setup-icon.png\" alt=\"Icona Setup insieme ad altre opzioni della barra degli strumenti.\" width=\"1200\" height=\"425\"><figcaption id=\"caption-attachment-209236\" class=\"wp-caption-text\">Icona Setup insieme ad altre opzioni della barra degli strumenti.<\/figcaption><\/figure>\n<p>Qui, cerca <strong>Named Credentials<\/strong>, apri la scheda <strong>External Credentials<\/strong> e clicca su <strong>New<\/strong>. Dagli un nome e un&#8217;etichetta, quindi imposta il protocollo di autenticazione su <strong>Personalizzato<\/strong>. Questo ti permette di definire un token Bearer piuttosto che utilizzare un flusso OAuth gestito.<\/p>\n<p>Dopo averla salvata, scorri fino a <strong>Principals<\/strong> e clicca su <strong>New<\/strong>. Dagli un nome, ad esempio <code>KinstaKey,<\/code> e inserisci la chiave API di Kinsta come valore.<\/p>\n<figure id=\"attachment_209237\" aria-describedby=\"caption-attachment-209237\" style=\"width: 1200px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-209237\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2026\/04\/new-credential.png\" alt=\"Campi per un nome, un'etichetta e un protocollo di autenticazione.\" width=\"1200\" height=\"613\"><figcaption id=\"caption-attachment-209237\" class=\"wp-caption-text\">Campi per un nome, un&#8217;etichetta e un protocollo di autenticazione.<\/figcaption><\/figure>\n<p>Ora, aggiungi un <strong>Custom Header<\/strong>\u00a0con il nome <code>Authorization<\/code> e un valore che fa riferimento al principale, in modo che ogni chiamata in uscita includa la chiave API come token Bearer.<\/p>\n<figure id=\"attachment_209239\" aria-describedby=\"caption-attachment-209239\" style=\"width: 1200px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-209239\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2026\/04\/new-named.png\" alt=\"La schermata New Named Credential mostra i diversi campi e le opzioni di autenticazione.\" width=\"1200\" height=\"854\"><figcaption id=\"caption-attachment-209239\" class=\"wp-caption-text\">La schermata New Named Credential mostra i diversi campi e le opzioni di autenticazione.<\/figcaption><\/figure>\n<p>Una volta salvata la credenziale esterna, vai alla scheda <strong>Named Credentials<\/strong>, clicca su <strong>New<\/strong>, imposta l&#8217;URL del tuo endpoint middleware, compila i campi richiesti e seleziona la <strong>credenziale esterna<\/strong> nella sezione <strong>Authentication<\/strong>.<\/p>\n<h4>Impostazione dei permessi degli utenti<\/h4>\n<p>Devi anche abilitare un <a href=\"https:\/\/help.salesforce.com\/s\/articleView?id=platform.perm_sets_overview.htm&#038;language=en_US&#038;type=5\" target=\"_blank\" rel=\"noopener noreferrer\">set di permessi<\/a> per il Principal della credenziale esterna, che garantisce al tuo profilo utente le credenziali necessarie per chiamare l&#8217;API di Kinsta. Per farlo, vai su <strong>Setup<\/strong> &gt; <strong>Permission Sets<\/strong>\u00a0e clicca su <strong>New<\/strong>.<\/p>\n<p>Dagli un nome e salvalo, poi riapri il set di permessi e clicca per modificare la schermata <strong>External Credential Principal Access<\/strong>. Dovresti spostare il principale della credenziale esterna nell&#8217;elenco degli abilitati:<\/p>\n<figure id=\"attachment_209240\" aria-describedby=\"caption-attachment-209240\" style=\"width: 1200px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-209240\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2026\/04\/edit-principal-access.png\" alt=\"La schermata External Credential Principal Access mostra l'elenco degli accessi disabilitati e abilitati.\" width=\"1200\" height=\"746\"><figcaption id=\"caption-attachment-209240\" class=\"wp-caption-text\">La schermata External Credential Principal Access mostra l&#8217;elenco degli accessi disabilitati e abilitati.<\/figcaption><\/figure>\n<p>Infine, salva le modifiche, torna al set di permessi e clicca su <strong>Manage Assignments<\/strong>\u00a0nella barra degli strumenti in alto:<\/p>\n<figure id=\"attachment_209241\" aria-describedby=\"caption-attachment-209241\" style=\"width: 1200px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-209241\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2026\/04\/manage-assignments-link.png\" alt=\"Il link Manage Assignments nella barra degli strumenti di Salesforce.\" width=\"1200\" height=\"532\"><figcaption id=\"caption-attachment-209241\" class=\"wp-caption-text\">Il link Manage Assignments nella barra degli strumenti di Salesforce.<\/figcaption><\/figure>\n<p>In questa schermata, usa <strong>Add Assignment<\/strong>\u00a0per connetterti al tuo profilo utente e abilitare l&#8217;accesso all&#8217;API di Kinsta.<\/p>\n<h3>2. Creare un flusso record-trigger sull&#8217;oggetto Opportunity<\/h3>\n<p>Apri l&#8217;App Launcher di Salesforce, quindi cerca i <strong>Flows<\/strong>\u00a0nella schermata che si apre, clicca su <strong>New<\/strong> e seleziona <strong>Record-Triggered Flow<\/strong>.<\/p>\n<figure id=\"attachment_209242\" aria-describedby=\"caption-attachment-209242\" style=\"width: 1200px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-209242\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2026\/04\/record-trigger-flow.png\" alt=\"L'opzione Record-Triggered Flow \u00e8 affiancata da altre scelte per creare automazioni.\" width=\"1200\" height=\"677\"><figcaption id=\"caption-attachment-209242\" class=\"wp-caption-text\">L&#8217;opzione Record-Triggered Flow \u00e8 affiancata da altre scelte per creare automazioni.<\/figcaption><\/figure>\n<p>Una volta aperto il Flow Builder, imposta le seguenti opzioni:<\/p>\n<ul>\n<li>Scegli <strong>Opportunity<\/strong>\u00a0come oggetto.<\/li>\n<li>Imposta l&#8217;attivazione quando un record viene aggiornato.<\/li>\n<li>Scegli <strong>All Conditions Are Met (AND)<\/strong> dal menu <strong>Condition Requirements<\/strong>.<\/li>\n<li>Tra i nuovi campi visualizzati, scegli <strong>Stage<\/strong> per <strong>Field<\/strong>, l&#8217;operatore <strong>Equals<\/strong> e <strong>Closed Won<\/strong> per <strong>Value<\/strong>.<\/li>\n<li>In <strong>When to Run the Flow for Updated Records<\/strong>, seleziona <strong>Only when a record is updated to meet the condition requirements<\/strong>.<\/li>\n<\/ul>\n<p>L&#8217;esecuzione del flusso in base agli aggiornamenti dei record impedisce che l&#8217;implementazione venga eseguita pi\u00f9 di una volta. Senza questa opzione, il flusso viene eseguito ad ogni salvataggio successivo dopo che la fase \u00e8 stata modificata.<\/p>\n<figure id=\"attachment_209243\" aria-describedby=\"caption-attachment-209243\" style=\"width: 1200px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-209243\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2026\/04\/flow-builder.png\" alt=\"Schermata del Flow Builder che mostra i campi completati per un nuovo flusso record-triggered.\" width=\"1200\" height=\"497\"><figcaption id=\"caption-attachment-209243\" class=\"wp-caption-text\">Schermata del Flow Builder che mostra i campi completati per un nuovo flusso record-triggered.<\/figcaption><\/figure>\n<p>Infine, in <strong>Optimize the Flow For<\/strong>, seleziona <strong>Actions and Related Records<\/strong> e attiva l&#8217;interruttore <strong>Add Asynchronous Path<\/strong>\u00a0che rende possibile il callout e visualizza i due nuovi &#8220;percorsi&#8221;.<\/p>\n<h3>3. Configura il percorso asincrono e aggiungi un&#8217;azione HTTP Callout<\/h3>\n<p>Salesforce non consente le chiamate HTTP all&#8217;interno di una transazione trigger aperta. Qualsiasi callout deve essere inserito nel percorso <strong>Run Asynchronously<\/strong>. Le azioni inserite in questo percorso vengono eseguite dopo il commit della transazione di attivazione.<\/p>\n<figure id=\"attachment_209244\" aria-describedby=\"caption-attachment-209244\" style=\"width: 1200px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-209244\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2026\/04\/async-paths.png\" alt=\"Flow Builder mostra i due percorsi Run Immediately e Run Asynchronously.\" width=\"1200\" height=\"767\"><figcaption id=\"caption-attachment-209244\" class=\"wp-caption-text\">Flow Builder mostra i due percorsi Run Immediately e Run Asynchronously.<\/figcaption><\/figure>\n<p>Nel percorso <strong>Run Asynchronously<\/strong>, aggiungi un elemento <strong>Action<\/strong> e seleziona <strong>Create HTTP Callout<\/strong>\u00a0nella parte inferiore del pannello di destra.<\/p>\n<figure id=\"attachment_209245\" aria-describedby=\"caption-attachment-209245\" style=\"width: 1200px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-209245\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2026\/04\/async-action.png\" alt=\"Il pannello Azioni di ricerca del Flow Builder mostra le interazioni con l'elemento Azione su un percorso.\" width=\"1200\" height=\"508\"><figcaption id=\"caption-attachment-209245\" class=\"wp-caption-text\">Il pannello Azioni di ricerca del Flow Builder mostra le interazioni con l&#8217;elemento Azione su un percorso.<\/figcaption><\/figure>\n<p>Per il callout, dagli un nome e indirizza l&#8217;URL al tuo endpoint middleware, usando <code>\/go-live<\/code> come slug. Puoi utilizzare un URL segnaposto finch\u00e9 il middleware non viene distribuito. Per lo sviluppo locale, <a href=\"https:\/\/ngrok.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">ngrok<\/a> espone la tua porta locale con un URL pubblico. Inoltre, seleziona qui la credenziale denominata.<\/p>\n<p>Una volta cliccato su <strong>Next<\/strong>, assegna un metodo <code>POST<\/code> e dai un&#8217;etichetta al callout. Facendo clic su Avanti, devi offrire un esempio di richiesta e risposta JSON. Per la richiesta, utilizza quanto segue:<\/p>\n<pre><code class=\"language-json\">{\n  \"site_id\": \"fbab4927-e354-4044-b226-29ac0fbd20ca\"\n}\n<\/code><\/pre>\n<p>Se selezioni <strong>Connect with Sample Response<\/strong>\u00a0nel pannello successivo, puoi utilizzare il pulsante <strong>Connect<\/strong> per testare la connessione fino a quel momento. Tuttavia, viene visualizzato un errore 502 finch\u00e9 non scrivi il middleware. Per ora, clicca su Use Example Response e aggiungi quanto segue:<\/p>\n<pre><code class=\"language-json\">{\n\u00a0\u00a0\"message\": \"Received\"\n}\n<\/code><\/pre>\n<p>In seguito, torna a connetterti se vuoi testare ulteriormente la connessione.<\/p>\n<h3>4. Impostare il corpo della richiesta nel Flow Builder<\/h3>\n<p>Dovrai fare un po&#8217; di lavoro manuale per impostare il corpo della richiesta per l&#8217;azione. Il primo passo \u00e8 scegliere <strong>New Resource<\/strong> dal menu a tendina <strong>Set Request Body<\/strong>:<\/p>\n<figure id=\"attachment_209247\" aria-describedby=\"caption-attachment-209247\" style=\"width: 1200px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-209247\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2026\/04\/new-resource.png\" alt=\"Flow Builder mostra il menu a tendina Set Request Body per una Action.\" width=\"1200\" height=\"515\"><figcaption id=\"caption-attachment-209247\" class=\"wp-caption-text\">Flow Builder mostra il menu a tendina Set Request Body per una Action.<\/figcaption><\/figure>\n<p>Inserisci un nome (ad esempio <code>requestBody<\/code>), salvalo e selezionalo come <strong>valore <\/strong>per il corpo della richiesta. Successivamente, aggiungi un elemento <strong>Assignment<\/strong> nel Flow Builder, assegnagli un&#8217;etichetta e un nome, quindi aggiungi i seguenti elementi nel menu a tendina <strong>Set Variable Values<\/strong>:<\/p>\n<ul>\n<li><strong>Variable:<\/strong> <code>site_id<\/code><\/li>\n<li><strong>Operator:<\/strong> Equals<\/li>\n<li><strong>Value: <\/strong>Scorri il sottomenu <strong>Triggering Opportunity<\/strong>\u00a0fino a raggiungere l&#8217;<strong>ID del sito Kinsta<\/strong>.<\/li>\n<\/ul>\n<p>Completando questa operazione, la configurazione di Salesforce \u00e8 terminata. Il prossimo passo \u00e8 iniziare a costruire l&#8217;applicazione Node.<\/p>\n<h3>5. Costruire il middleware Node.js<\/h3>\n<p>Dopo aver configurato il flusso, il middleware \u00e8 il luogo in cui vengono effettuate le chiamate all&#8217;API di Kinsta. Avvia un nuovo progetto Node.js e installa le dipendenze:<\/p>\n<pre><code class=\"language-bash\">npm init -y\nnpm install express dotenv\n<\/code><\/pre>\n<p><a href=\"https:\/\/kinsta.com\/it\/blog\/cos-e-express-js\/\">Express.js<\/a> gestisce il routing e l&#8217;analisi delle richieste. <code>dotenv<\/code> carica il file <code>.env<\/code> in modo che la tua chiave API sia disponibile in fase di esecuzione senza apparire nel codice sorgente. Quindi, crea <code>app.js<\/code> nella root del progetto:<\/p>\n<pre><code class=\"language-javascript\">\/\/ app.js\nconst express = require('express');\nrequire('dotenv').config();\nconst app = express();\napp.use(express.json());\n\n\nconst KINSTA_API_URL = 'https:\/\/api.kinsta.com\/v2';\n\n\nconst headers = {\n\u00a0\u00a0'Content-Type': 'application\/json',\n\u00a0\u00a0Authorization: `Bearer ${process.env.KINSTA_API_KEY}`\n};\n\napp.post('\/go-live', async (req, res) =&gt; {\n\u00a0\u00a0const { site_id } = req.body;\n\u00a0\u00a0if (!site_id) {\n\u00a0\u00a0\u00a0\u00a0return res.status(400).json({ message: 'site_id is required' });\n\u00a0\u00a0}\n\u00a0\u00a0\/\/ Kinsta API calls added in the steps below\n\u00a0\u00a0res.status(200).json({ message: 'Received' });\n});\n\napp.listen(3000, () =&gt; console.log('Middleware running on port 3000'));<\/code><\/pre>\n<p>La costante <code>headers<\/code> gestisce l&#8217;autenticazione del token Bearer per ogni richiesta dell&#8217;API Kinsta nell&#8217;applicazione. Nota che l&#8217;ID dell&#8217;azienda, quando \u00e8 necessario per gli endpoint come <code>GET \/sites<\/code>, passa come parametro della query (non nell&#8217;intestazione Authorization). La chiamata <code>require('dotenv').config()<\/code> nella parte superiore assicura il caricamento della chiave da <code>.env<\/code> prima che qualsiasi altra cosa venga eseguita.<\/p>\n<p>Prima di <a href=\"https:\/\/kinsta.com\/it\/docs\/hosting-wordpress\/wordpress-backup\/\">creare un backup<\/a>, il middleware ha bisogno degli ID degli ambienti sia di staging che live. Aggiungi una funzione <code>getEnvironments<\/code> sotto la costante <code>headers<\/code>:<\/p>\n<pre><code class=\"language-javascript\">const getEnvironments = async (siteId) =&gt; {\n\u00a0\u00a0const resp = await fetch(\n\u00a0\u00a0\u00a0\u00a0`${KINSTA_API_URL}\/sites\/${siteId}\/environments`,\n\u00a0\u00a0\u00a0\u00a0{ method: 'GET', headers }\n\u00a0\u00a0);\n\n\u00a0\u00a0const data = await resp.json();\n\u00a0\u00a0return data.site.environments;\n};<\/code><\/pre>\n<p>Questo chiama <code>GET \/sites\/{siteId}\/environments<\/code> e restituisce l&#8217;intero array di ambienti.<\/p>\n<h3>6. Crea un backup manuale dell&#8217;ambiente di staging<\/h3>\n<p><a href=\"https:\/\/kinsta.com\/it\/docs\/hosting-wordpress\/trasferire-ambienti-wordpress\/\">Il push di un ambiente<\/a> in produzione sovrascrive il sito live. Creare prima un backup significa avere un punto di ripristino nel caso in cui il push faccia emergere un conflitto che i test in staging non hanno rilevato.<\/p>\n<p>In questo caso, aggiungi una funzione <code>createBackup<\/code> sotto <code>getEnvironments<\/code>:<\/p>\n<pre><code class=\"language-javascript\">const createBackup = async (envId) =&gt; {\n\u00a0\u00a0const resp = await fetch(\n\u00a0\u00a0\u00a0\u00a0`${KINSTA_API_URL}\/sites\/environments\/${envId}\/manual-backups`,\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0method: 'POST',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0headers,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0body: JSON.stringify({ tag: 'pre-launch-backup' })\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0);\n\n\u00a0\u00a0const data = await resp.json();\n\u00a0\u00a0return data;\n};<\/code><\/pre>\n<p>Kinsta elabora il backup in modo asincrono e restituisce <code>202 Accepted<\/code> con un <code>operation_id<\/code> anzich\u00e9 un risultato completato:<\/p>\n<pre><code class=\"language-bash\">{\n\u00a0\u00a0\"operation_id\": \"backups:add-manual-54fb80af-576c-4fdc-ba4f-b596c83f15a1\",\n\u00a0\u00a0\"message\": \"Adding a manual backup to environment in progress\",\n\u00a0\u00a0\"status\": 202\n}<\/code><\/pre>\n<p>Per mettere in pausa l&#8217;esecuzione fino al completamento del backup prima dell&#8217;esecuzione del push, aggiungi una funzione <code>pollOperation<\/code> sotto <code>createBackup<\/code>:<\/p>\n<pre><code class=\"language-javascript\">const pollOperation = async (operationId, intervalMs = 5000, maxAttempts = 12) =&gt; {\n\u00a0\u00a0for (let attempt = 0; attempt &lt; maxAttempts; attempt++) {\n\u00a0\u00a0\u00a0\u00a0await new Promise(resolve =&gt; setTimeout(resolve, intervalMs));\n\u00a0\u00a0\u00a0\u00a0const resp = await fetch(\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0`${KINSTA_API_URL}\/operations\/${operationId}`,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{ method: 'GET', headers }\n\u00a0\u00a0\u00a0\u00a0);\n\u00a0\u00a0\u00a0\u00a0const data = await resp.json();\n\u00a0\u00a0\u00a0\u00a0if (data.status === 200) return data;\n\u00a0\u00a0\u00a0\u00a0if (data.status &gt;= 400) throw new Error(`Operation failed: ${data.message}`);\n\u00a0\u00a0}\n\u00a0\u00a0throw new Error('Operation timed out');\n};<\/code><\/pre>\n<p>Il ciclo controlla ogni cinque secondi, coprendo fino a un minuto di tempo di elaborazione. Uno stato <code>200<\/code> dall&#8217;endpoint delle operazioni significa che il backup \u00e8 completo e che il push pu\u00f2 procedere.<\/p>\n<h3>7. Trasferire lo staging in produzione e monitorare il completamento<\/h3>\n<p>Una volta confermato il backup, aggiungi una funzione <code>pushToProduction<\/code> sotto <code>pollOperation<\/code>:<\/p>\n<pre><code class=\"language-javascript\">const pushToProduction = async (siteId, stagingEnvId, liveEnvId) =&gt; {\n\u00a0\u00a0const resp = await fetch(\n\u00a0\u00a0\u00a0\u00a0`${KINSTA_API_URL}\/sites\/${siteId}\/environments`,\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0method: 'PUT',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0headers,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0body: JSON.stringify({\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0source_env_id: stagingEnvId,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0target_env_id: liveEnvId,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0push_db: true,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0push_files: true,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0run_search_and_replace: true\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0})\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0);\n\u00a0\u00a0const data = await resp.json();\n\u00a0\u00a0return data;\n};<\/code><\/pre>\n<p>I parametri <code>source_env_id<\/code> e <code>target_env_id<\/code> identificano la destinazione di ciascun ambiente. Il flag <code>run_search_and_replace<\/code> aggiorna i riferimenti al dominio codificati nel database dopo il push. In assenza di questo flag, tutti i riferimenti ai domini di staging presenti nel database rimangono sul sito live dopo il completamento del push.<\/p>\n<p>Il push restituisce anche <code>202 Accepted<\/code> con un <code>operation_id<\/code>. Passando questo dato a <code>pollOperation<\/code> si conferma il completamento. Infine, aggiorna il gestore del percorso per chiamare tutte le funzioni in sequenza:<\/p>\n<pre><code class=\"language-javascript\">app.post('\/go-live', async (req, res) =&gt; {\n\u00a0\u00a0const { site_id } = req.body;\n\u00a0\u00a0if (!site_id) {\n\u00a0\u00a0\u00a0\u00a0return res.status(400).json({ message: 'site_id is required' });\n\u00a0\u00a0}\n\u00a0\u00a0try {\n\u00a0\u00a0\u00a0\u00a0const environments = await getEnvironments(site_id);\n\u00a0\u00a0\u00a0\u00a0const stagingEnv = environments.find(env =&gt; env.name === 'staging');\n\u00a0\u00a0\u00a0\u00a0const liveEnv = environments.find(env =&gt; env.name === 'live');\n\u00a0\u00a0\u00a0\u00a0const backup = await createBackup(stagingEnv.id);\n\u00a0\u00a0\u00a0\u00a0await pollOperation(backup.operation_id);\n\u00a0\u00a0\u00a0\u00a0const push = await pushToProduction(site_id, stagingEnv.id, liveEnv.id);\n\u00a0\u00a0\u00a0\u00a0await pollOperation(push.operation_id);\n\u00a0\u00a0\u00a0\u00a0console.log(`Go-live complete for site ${site_id}`);\n\u00a0\u00a0\u00a0\u00a0res.status(200).json({ message: 'Go-live complete' });\n\u00a0\u00a0} catch (err) {\n\u00a0\u00a0\u00a0\u00a0console.error(err);\n\u00a0\u00a0\u00a0\u00a0res.status(500).json({ message: 'Go-live failed', error: err.message });\n\u00a0\u00a0}\n});<\/code><\/pre>\n<p>Una volta salvate le modifiche, aggiorna la Named Credential con l&#8217;URL del middleware attuale, se necessario, quindi <strong>attiva<\/strong> il flusso. Quindi, eseguilo con <code>node app.js<\/code> e sposta un Opportunity nel target stage in Salesforce.<\/p>\n<figure id=\"attachment_209248\" aria-describedby=\"caption-attachment-209248\" style=\"width: 1200px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-209248\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2026\/04\/mykinsta-push.png\" alt=\"La dashboard di MyKinsta mostra un sito di staging in fase di trasferimento al live.\" width=\"1200\" height=\"489\"><figcaption id=\"caption-attachment-209248\" class=\"wp-caption-text\">La dashboard di MyKinsta mostra un sito di staging in fase di trasferimento al live.<\/figcaption><\/figure>\n<p>Il sito viene pubblicato senza richiedere l&#8217;accesso a MyKinsta. Potresti anche considerare che con <a href=\"https:\/\/www.salesforce.com\/news\/stories\/salesforce-headless-360-announcement\/\" target=\"_blank\" rel=\"noopener noreferrer\">Headless 360<\/a> di Salesforce puoi eseguire molte di queste operazioni al di fuori della GUI, tramite la CLI o come MCP.<\/p>\n<h2>Automatizzare il flusso di lavoro di distribuzione della tua agenzia con Salesforce e Kinsta<\/h2>\n<p>Puoi chiudere il cerchio tra l&#8217;API di Kinsta e Salesforce attraverso un&#8217;applicazione middleware Node. Una volta modificata la fase di Opportunity in Salesforce, MyKinsta esegue automaticamente un backup, lo invia in produzione e lo conferma senza alcun passaggio manuale.<\/p>\n<p>Quando il middleware \u00e8 pronto per la produzione, <a href=\"https:\/\/sevalla.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Sevalla<\/a> \u00e8 un target di distribuzione costruito esattamente per questo tipo di servizio Node.js. Si esegue il push del progetto su un provider Git, si collega il repository, si aggiungono le variabili d&#8217;ambiente e si aggiorna l&#8217;URL di callout HTTP di Salesforce all&#8217;indirizzo del middleware attivo.<\/p>\n<p>Per le agenzie che creano automazione su un portafoglio clienti, il <a href=\"https:\/\/kinsta.com\/it\/programma-agenzie-partner\/\">Programma Agenzie Partner<\/a> di Kinsta offre una partnership infrastrutturale e un supporto dedicato che rendono questo tipo di lavoro sostenibile su scala.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Quando un accordo viene chiuso in Salesforce, il sito che rappresenta dipende ancora da una serie di passaggi manuali separati per andare in produzione. Chi si &#8230;<\/p>\n","protected":false},"author":287,"featured_media":84111,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[26232],"class_list":["post-84110","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-api"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Automatizza il Go-Live di WordPress con Salesforce e l&#039;API di Kinsta<\/title>\n<meta name=\"description\" content=\"Automatizza il Go-Live di WordPress da Salesforce. Usa l&#039;API di Kinsta per eliminare le fasi manuali di implementazione.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/it\/blog\/automatizza-wordpress-salesforce-kinsta-api\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Come automatizzare il go-live di WordPress da Salesforce utilizzando l&#039;API Kinsta\" \/>\n<meta property=\"og:description\" content=\"Automatizza il Go-Live di WordPress da Salesforce. Usa l&#039;API di Kinsta per eliminare le fasi manuali di implementazione.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/it\/blog\/automatizza-wordpress-salesforce-kinsta-api\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstaitalia\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-26T08:51:19+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-01T12:56:02+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2026\/05\/how-to-automate-wordpress-go-live-from-salesforce-using-the-kinsta-api.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1470\" \/>\n\t<meta property=\"og:image:height\" content=\"735\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Joel Olawanle\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Automatizza il Go-Live di WordPress da Salesforce. Usa l&#039;API di Kinsta per eliminare le fasi manuali di implementazione.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2026\/05\/how-to-automate-wordpress-go-live-from-salesforce-using-the-kinsta-api.png\" \/>\n<meta name=\"twitter:creator\" content=\"@olawanle_joel\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_IT\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Joel Olawanle\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"14 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/automatizza-wordpress-salesforce-kinsta-api\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/automatizza-wordpress-salesforce-kinsta-api\/\"},\"author\":{\"name\":\"Joel Olawanle\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07\"},\"headline\":\"Come automatizzare il go-live di WordPress da Salesforce utilizzando l&#8217;API Kinsta\",\"datePublished\":\"2026-05-26T08:51:19+00:00\",\"dateModified\":\"2026-06-01T12:56:02+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/automatizza-wordpress-salesforce-kinsta-api\/\"},\"wordCount\":2149,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/it\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/automatizza-wordpress-salesforce-kinsta-api\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2026\/05\/how-to-automate-wordpress-go-live-from-salesforce-using-the-kinsta-api.png\",\"inLanguage\":\"it-IT\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/automatizza-wordpress-salesforce-kinsta-api\/\",\"url\":\"https:\/\/kinsta.com\/it\/blog\/automatizza-wordpress-salesforce-kinsta-api\/\",\"name\":\"Automatizza il Go-Live di WordPress con Salesforce e l'API di Kinsta\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/it\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/automatizza-wordpress-salesforce-kinsta-api\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/automatizza-wordpress-salesforce-kinsta-api\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2026\/05\/how-to-automate-wordpress-go-live-from-salesforce-using-the-kinsta-api.png\",\"datePublished\":\"2026-05-26T08:51:19+00:00\",\"dateModified\":\"2026-06-01T12:56:02+00:00\",\"description\":\"Automatizza il Go-Live di WordPress da Salesforce. Usa l'API di Kinsta per eliminare le fasi manuali di implementazione.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/automatizza-wordpress-salesforce-kinsta-api\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/it\/blog\/automatizza-wordpress-salesforce-kinsta-api\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/automatizza-wordpress-salesforce-kinsta-api\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2026\/05\/how-to-automate-wordpress-go-live-from-salesforce-using-the-kinsta-api.png\",\"contentUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2026\/05\/how-to-automate-wordpress-go-live-from-salesforce-using-the-kinsta-api.png\",\"width\":1470,\"height\":735},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/automatizza-wordpress-salesforce-kinsta-api\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/it\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"API\",\"item\":\"https:\/\/kinsta.com\/it\/argomenti\/api\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Come automatizzare il go-live di WordPress da Salesforce utilizzando l&#8217;API Kinsta\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/it\/#website\",\"url\":\"https:\/\/kinsta.com\/it\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Soluzioni di hosting premium, veloci e sicure\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/it\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/it\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/it\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/it\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstaitalia\/\",\"https:\/\/x.com\/Kinsta_IT\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07\",\"name\":\"Joel Olawanle\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g\",\"caption\":\"Joel Olawanle\"},\"description\":\"Joel is a Frontend developer working at Kinsta as a Technical Editor. He is a passionate teacher with love for open source and has written over 300 technical articles majorly around JavaScript and it's frameworks.\",\"sameAs\":[\"https:\/\/joelolawanle.com\/\",\"https:\/\/www.linkedin.com\/in\/olawanlejoel\/\",\"https:\/\/x.com\/olawanle_joel\",\"https:\/\/www.youtube.com\/@joelolawanle\"],\"gender\":\"male\",\"knowsAbout\":[\"JavaScript\",\"React\",\"Next.js\"],\"knowsLanguage\":[\"English\"],\"jobTitle\":\"Technical Editor\",\"worksFor\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/it\/blog\/author\/joelolawanle\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Automatizza il Go-Live di WordPress con Salesforce e l'API di Kinsta","description":"Automatizza il Go-Live di WordPress da Salesforce. Usa l'API di Kinsta per eliminare le fasi manuali di implementazione.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/it\/blog\/automatizza-wordpress-salesforce-kinsta-api\/","og_locale":"it_IT","og_type":"article","og_title":"Come automatizzare il go-live di WordPress da Salesforce utilizzando l'API Kinsta","og_description":"Automatizza il Go-Live di WordPress da Salesforce. Usa l'API di Kinsta per eliminare le fasi manuali di implementazione.","og_url":"https:\/\/kinsta.com\/it\/blog\/automatizza-wordpress-salesforce-kinsta-api\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstaitalia\/","article_published_time":"2026-05-26T08:51:19+00:00","article_modified_time":"2026-06-01T12:56:02+00:00","og_image":[{"width":1470,"height":735,"url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2026\/05\/how-to-automate-wordpress-go-live-from-salesforce-using-the-kinsta-api.png","type":"image\/png"}],"author":"Joel Olawanle","twitter_card":"summary_large_image","twitter_description":"Automatizza il Go-Live di WordPress da Salesforce. Usa l'API di Kinsta per eliminare le fasi manuali di implementazione.","twitter_image":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2026\/05\/how-to-automate-wordpress-go-live-from-salesforce-using-the-kinsta-api.png","twitter_creator":"@olawanle_joel","twitter_site":"@Kinsta_IT","twitter_misc":{"Scritto da":"Joel Olawanle","Tempo di lettura stimato":"14 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/it\/blog\/automatizza-wordpress-salesforce-kinsta-api\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/it\/blog\/automatizza-wordpress-salesforce-kinsta-api\/"},"author":{"name":"Joel Olawanle","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07"},"headline":"Come automatizzare il go-live di WordPress da Salesforce utilizzando l&#8217;API Kinsta","datePublished":"2026-05-26T08:51:19+00:00","dateModified":"2026-06-01T12:56:02+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/it\/blog\/automatizza-wordpress-salesforce-kinsta-api\/"},"wordCount":2149,"publisher":{"@id":"https:\/\/kinsta.com\/it\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/it\/blog\/automatizza-wordpress-salesforce-kinsta-api\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2026\/05\/how-to-automate-wordpress-go-live-from-salesforce-using-the-kinsta-api.png","inLanguage":"it-IT"},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/it\/blog\/automatizza-wordpress-salesforce-kinsta-api\/","url":"https:\/\/kinsta.com\/it\/blog\/automatizza-wordpress-salesforce-kinsta-api\/","name":"Automatizza il Go-Live di WordPress con Salesforce e l'API di Kinsta","isPartOf":{"@id":"https:\/\/kinsta.com\/it\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/it\/blog\/automatizza-wordpress-salesforce-kinsta-api\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/it\/blog\/automatizza-wordpress-salesforce-kinsta-api\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2026\/05\/how-to-automate-wordpress-go-live-from-salesforce-using-the-kinsta-api.png","datePublished":"2026-05-26T08:51:19+00:00","dateModified":"2026-06-01T12:56:02+00:00","description":"Automatizza il Go-Live di WordPress da Salesforce. Usa l'API di Kinsta per eliminare le fasi manuali di implementazione.","breadcrumb":{"@id":"https:\/\/kinsta.com\/it\/blog\/automatizza-wordpress-salesforce-kinsta-api\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/it\/blog\/automatizza-wordpress-salesforce-kinsta-api\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/blog\/automatizza-wordpress-salesforce-kinsta-api\/#primaryimage","url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2026\/05\/how-to-automate-wordpress-go-live-from-salesforce-using-the-kinsta-api.png","contentUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2026\/05\/how-to-automate-wordpress-go-live-from-salesforce-using-the-kinsta-api.png","width":1470,"height":735},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/it\/blog\/automatizza-wordpress-salesforce-kinsta-api\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/it\/"},{"@type":"ListItem","position":2,"name":"API","item":"https:\/\/kinsta.com\/it\/argomenti\/api\/"},{"@type":"ListItem","position":3,"name":"Come automatizzare il go-live di WordPress da Salesforce utilizzando l&#8217;API Kinsta"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/it\/#website","url":"https:\/\/kinsta.com\/it\/","name":"Kinsta\u00ae","description":"Soluzioni di hosting premium, veloci e sicure","publisher":{"@id":"https:\/\/kinsta.com\/it\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/it\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/it\/","logo":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstaitalia\/","https:\/\/x.com\/Kinsta_IT","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07","name":"Joel Olawanle","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g","caption":"Joel Olawanle"},"description":"Joel is a Frontend developer working at Kinsta as a Technical Editor. He is a passionate teacher with love for open source and has written over 300 technical articles majorly around JavaScript and it's frameworks.","sameAs":["https:\/\/joelolawanle.com\/","https:\/\/www.linkedin.com\/in\/olawanlejoel\/","https:\/\/x.com\/olawanle_joel","https:\/\/www.youtube.com\/@joelolawanle"],"gender":"male","knowsAbout":["JavaScript","React","Next.js"],"knowsLanguage":["English"],"jobTitle":"Technical Editor","worksFor":"Kinsta","url":"https:\/\/kinsta.com\/it\/blog\/author\/joelolawanle\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/84110","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/users\/287"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/comments?post=84110"}],"version-history":[{"count":5,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/84110\/revisions"}],"predecessor-version":[{"id":84167,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/84110\/revisions\/84167"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/84110\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/84110\/translations\/it"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/84110\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/84110\/translations\/de"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/84110\/translations\/es"},{"href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/84110\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/media\/84111"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/media?parent=84110"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/tags?post=84110"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/topic?post=84110"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}