Documentazione
Come faccio ad abilitare il plugin?
Dopo l'acquisto, dovrai installare il plugin sul tuo sito web WordPress. Ecco come fare.
Fase 1: Installazione
Accedi al tuo sito WordPress e vai a Plugin → Aggiungi plugin → Carica plugin. Carica il file zip e attivalo.
Passaggio 2: Registra il plugin
Nella navigazione a sinistra, vai a Moduli → Impostazioni → Salesforce. Nel Licenza sezione clicca Gestione licenze, inserisci la tua chiave di licenza e fai clic Attiva licenza.
Passaggio 3: Collegare Salesforce
Una volta ottenuta la licenza, scorri fino a Connessione Salesforce sezione nella stessa pagina delle impostazioni (è intitolata Aggiungi l'account Salesforce una volta creato l'account) e collega il tuo primo account Salesforce (istruzioni complete di seguito)
Ecco fatto! Ora sei pronto per iniziare a mappare i moduli su Salesforce.
Come posso collegare un account Salesforce tramite OAuth?
Passaggio 1: Comprendere le tipologie di app
In Salesforce, puoi creare un'App client esterna (l'opzione moderna, e l'unica disponibile per le nuove organizzazioni create a partire dalla versione Spring '26 di Salesforce) o un'App connessa (l'opzione precedente, ancora supportata nelle organizzazioni esistenti che la consentono). Il plugin funziona in modo identico con entrambe.
Nella configurazione di Salesforce, accedi a una delle seguenti opzioni:
- Configurazione → Gestore applicazioni client esterne → Nuova applicazione client esterna (raccomandato)
o app connessa legacy (disabilitata per impostazione predefinita nelle organizzazioni più recenti)
- Impostazioni → Gestione app → Nuova app connessa
Prima di stabilire la connessione: l'utente Salesforce che autorizza la connessione deve disporre dei permessi di creazione (e modifica, per i feed che si aggiornano) su ogni oggetto con cui si desidera sincronizzare i dati. Il plugin elenca solo gli oggetti che l'utente può effettivamente creare.
Passaggio 2: Creare una nuova app client esterna
NOTA: Negli screenshot qui sotto, le impostazioni non selezionate o vuote vanno lasciate invariate, quindi lasciatele così come sono.
Dopo aver effettuato l'accesso a Salesforce, in alto a destra dello schermo, fai clic sull'icona a forma di ingranaggio:

Sul lato sinistro dello schermo, nella casella di ricerca denominata "Ricerca rapida", cerca "app client esterna" e quindi seleziona "Gestore app client esterna":

Sul lato destro dello schermo, fai clic sul pulsante con la scritta "Nuova applicazione client esterna":

Nella sezione “Informazioni di base” inserire quanto segue:
- Nome dell'app client esterna (il nome dell'API verrà generato automaticamente, non modificarlo)
- Indirizzo email di contatto
- Lasciare lo stato di distribuzione su "Locale".“

Nella sezione “API (Abilita impostazioni OAuth)” procedi come segue:
- Abilita OAuth
- Inserisci il tuo URL di callback (lo trovi nelle impostazioni del plugin in Moduli > Impostazioni > Salesforce > URL di callback OAuth)
- Nella sezione Ambiti OAuth, selezionare quanto segue:
- “Gestisci i dati degli utenti tramite API (api)”
- “"Esegui richieste in qualsiasi momento (refresh_token, offline_access)"”

Non modificare le seguenti impostazioni:

Lascia invariate anche tutte le altre impostazioni riportate di seguito:

Fai clic su "Crea app" e sei pronto per passare al passaggio 3:

Passaggio 3: Modificare le politiche di autorizzazione dell'app
Dopo aver creato l'app, è necessario modificarne le policy. Fare clic nuovamente su "Gestione app client esterne".“

Seleziona quindi l'app appena creata e fai clic sul pulsante "Modifica" come mostrato di seguito:

Apri quindi il menu a tendina "Policy OAuth" e imposta la scadenza del token di aggiornamento su "dopo un periodo di tempo specifico", quindi impostala su 365 giorni o più. Il plugin aggiorna automaticamente il token di accesso di breve durata, ma una volta scaduto il token di aggiornamento, Salesforce rifiuta la connessione e devi riconnettere l'account in Moduli → Impostazioni → Salesforce. Una policy più lunga significa che dovrai farlo al massimo una volta all'anno anziché ogni 30 giorni.
Consigliamo di impostare un promemoria per verificare la connessione, per ogni evenienza.

Passaggio 4: collega la nuova app client esterna a Gravity Forms
La configurazione di Salesforce è completa, ora dobbiamo connettere Gravity Forms all'app. In Salesforce, torna a "Gestione app client esterne" e seleziona la tua app.

Fai clic su "Impostazioni", scorri verso il basso fino a "Impostazioni OAuth" e aprilo. Vedrai un pulsante con la scritta "Chiave e segreto del consumatore", fai clic su quel pulsante.

Molto probabilmente ti verrà mostrata una schermata di verifica dell'identità e ti sarà stato inviato un codice. Inserisci il codice e clicca su "Verifica".“

Dopo la verifica, ti verranno mostrate la Chiave Consumer e il Segreto Consumer. Tieni aperta quella scheda e in una nuova scheda vai alle impostazioni del nostro plugin in Moduli > Impostazioni > Salesforce e aggiungi le chiavi come descritto nello screenshot qui sotto. Il pulsante appare una volta compilati entrambi i campi: fai clic su Connetti account (viene visualizzato "Aggiungi account" se hai già un account connesso).

Come vedrai, Gravity Forms è ora connesso a Salesforce e possiamo passare al passaggio 5 (ultimo passaggio):

Passaggio 5: Aggiungi un feed di Salesforce al tuo modulo
Accedi alle impostazioni del modulo Gravity Form che desideri collegare a Salesforce e aggiungi un nuovo feed:

Infine, configura le impostazioni del feed come preferisci:

Ora è tutto pronto! Se desideri collegare altri account Salesforce e creare feed per altri moduli, ripeti i 5 passaggi descritti sopra.
Come posso collegarmi con Org ID? (Web-to-Lead / Web-to-Case)
Se la tua organizzazione Salesforce non ha accesso alle API (alcune edizioni Essentials/Professional), puoi ripiegare sull'endpoint legacy Web-to-Lead / Web-to-Case.
Passaggio 1: In Salesforce, trova il tuo ID organizzazione Sotto Impostazioni → Informazioni sull'azienda.
Fase 2: In WordPress, nella pagina delle impostazioni di Salesforce, cambia l'impostazione Metodo di connessione Selezionare "ID organizzazione (Web-to-Lead/Case)".
Passaggio 3: Incolla il tuo ID organizzazione e fai clic Salva l'account ID organizzazione. Dalla versione 1.5.0, il sistema legge i valori inseriti nel modulo, quindi non è necessario salvare prima le impostazioni.
Dritta: La modalità ID organizzazione supporta solo Lead e Case. Aggiornamenti, eliminazioni, caricamenti di file, precompilazione e mappatura di elenchi a discesa richiedono un account OAuth.
Come si imposta un feed?
Passaggio 1: Modifica un modulo → Impostazioni modulo → Salesforce → Aggiungi nuovo.
Fase 2: Scegli il Account Salesforce, Oggetto Salesforce (Lead, Contatto, Account, oggetto personalizzato…), e Modalità di sincronizzazione (l'impostazione predefinita, Creare o aggiornare il record se esiste già, (è corretto nella maggior parte dei casi).
Passaggio 3: Mappa i campi di Gravity Forms ai campi di Salesforce. I campi obbligatori di Salesforce sono contrassegnati da un asterisco per facilitarne l'inserimento.
Passaggio 4 (facoltativo): Sotto Corrispondenza duplicata, tic tac Abilita la corrispondenza duplicata della chiave primaria per aggiornare i record esistenti corrispondenti in base all'indirizzo e-mail, a un ID esterno o a qualsiasi altro campo filtrabile.
Passaggio 5 (facoltativo): Configura la logica condizionale, il controllo dei conflitti, l'assegnazione del proprietario, il caricamento dei file, le note o l'appartenenza alla campagna.
Passo 6: Salva il feed e invia una voce di prova. Controlla la schermata dei dettagli della voce nella barra laterale di Salesforce. Poiché la sincronizzazione viene eseguita in background, potresti visualizzare brevemente lo stato "In sospeso" in blu, quindi l'ID del nuovo record e un collegamento diretto ad esso in Salesforce.
Quali comportamenti di sincronizzazione devo attivare?
La creazione dei record funziona non appena viene salvato un feed. I comportamenti del ciclo di vita sono opt-in, sotto Moduli → Impostazioni → Salesforce → Impostazioni di sincronizzazione, e tutti e quattro sono spenti finché non li selezioni:
- La sincronizzazione si aggiorna quando le voci vengono modificate. invia le modifiche alle voci al record Salesforce collegato.
- Elimina i record di Salesforce quando le voci vengono eliminate definitivamente. Il record viene rimosso quando si svuota il cestino. Spostare una voce nel cestino non ha alcun effetto su Salesforce.
- Risincronizza i dati delle voci quando queste vengono ripristinate dal cestino/spam. Salva tutte le modifiche apportate mentre la voce era nel cestino e crea una copia sostitutiva se nel frattempo il record è stato eliminato in Salesforce.
- Invia le note inserite da Gravity Forms a Salesforce come record di note. Replica le note che un amministratore aggiunge a una voce ed elimina la copia in Salesforce quando la nota viene eliminata.
Dettagli della funzione
Metodi di connessione
Il plugin supporta due modalità di connessione tra Gravity Forms e Salesforce. Scegli quella più adatta al livello di accesso API della tua organizzazione.
- OAuth 2.0 con PKCE (consigliato). Autenticazione Salesforce moderna tramite un'app connessa o un'app client esterna (il sostituto di Spring '26+). Non sono presenti chiavi API statiche sul server, il plugin aggiorna automaticamente i token di accesso e la connessione rimane attiva a tempo indeterminato finché la policy del token di aggiornamento dell'app non la fa scadere. Ambiti richiesti:
apierefresh_token/offline_access. Compatibile con tutte le edizioni di Salesforce che dispongono di accesso API (Enterprise, Unlimited, Performance, Developer o Professional con il componente aggiuntivo di accesso API). - Web-to-Lead / Web-to-Case (ID organizzazione). Endpoint di invio legacy che utilizza solo l'ID dell'organizzazione Salesforce. Utile per le organizzazioni senza accesso API (alcune edizioni Essentials e Professional). Limitazioni: solo oggetti Lead e Case, nessun aggiornamento, nessuna eliminazione, nessun caricamento di file, nessun precompilazione, nessuna mappatura di elenchi a discesa.
Entrambe le modalità possono essere utilizzate sullo stesso sito WordPress. È possibile avere un account OAuth per l'organizzazione principale e un account Org ID per un'organizzazione secondaria, e ogni feed sceglie in modo indipendente con quale sincronizzarsi.
Supporto multi-account
Collega tutti gli account Salesforce che desideri a un singolo sito WordPress. Configurazioni comuni:
- Sandbox e produzione: testa i feed nell'ambiente di test, quindi passa alla produzione con una semplice modifica dal menu a tendina.
- Agenzia: ogni organizzazione client ottiene la propria connessione; ogni feed sceglie con quale client sincronizzarsi.
- Società madre e controllate: diversi moduli conducono a diverse organizzazioni all'interno della struttura aziendale.
Un account viene sempre impostato come predefinito, quindi i siti più semplici non devono mai preoccuparsi di quale account utilizzare. Funge anche da soluzione di ripiego: un feed senza un account impostato, o il cui account viene successivamente rimosso, si sincronizza con l'account predefinito. La rimozione di un account avvisa l'utente prima che l'operazione venga eseguita, quindi, se l'organizzazione predefinita non è quella di destinazione, è consigliabile indirizzare i feed interessati a un altro account.
Ogni account ha anche il proprio stato di connessione. Il plugin registra quando ogni account è stato aggiornato l'ultima volta, ha avuto successo l'ultima volta e ha fallito l'ultima volta, e l'elenco degli account segnala Connesso con un orario di ultima verifica, Richiede attenzione o È necessaria una riconnessione, in modo che una connessione interrotta sia visibile prima che gli invii inizino a fallire. Ogni account mantiene la versione dell'API di Salesforce con cui è stato connesso (le nuove connessioni sono impostate di default su v63.0); rimuovere e ricollegare un account per spostarlo a una versione più recente. La rimozione di un account revoca i relativi token con Salesforce anziché eliminarli semplicemente a livello locale.
Oggetti Salesforce supportati
È possibile sincronizzare con qualsiasi oggetto Salesforce L'utente connesso può accedere a oggetti standard o personalizzati. Il menu a tendina Oggetto viene creato dinamicamente in base allo schema effettivo della tua organizzazione, quindi vedrai tutti gli oggetti standard forniti da Salesforce (Account, Contatto, Lead, Opportunità, Caso, Campagna, Attività, Evento, Nota, Utente e molti altri) oltre a tutti gli oggetti personalizzati che hai definito.
Per gli oggetti personalizzati, scegli “Personalizzato (digitare di seguito)” e inserire il nome dell'API (ad esempio, My_Object__cI valori delle liste di selezione, le relazioni di ricerca, gli allegati e il precompilazione funzionano allo stesso modo sia con gli oggetti personalizzati che con quelli standard.
Collegamento dei record tra feed
Un singolo invio può creare diversi record correlati. Aggiungi un feed per ogni oggetto, quindi trascina le righe nell'elenco dei feed nell'ordine desiderato. I feed vengono eseguiti in quell'ordine, uno dopo l'altro, in background. In un feed successivo, mappa il campo di ricerca (AccountId, ContactId o qualsiasi ricerca personalizzata) a Valore personalizzato e inserisci {salesforce_id:FEED_ID}, dove FEED_ID è l'ID del feed precedente. Il tag si risolve nel record che il feed ha creato o aggiornato per questa voce, quindi il nuovo record è collegato ad esso. L'ID del feed è il fid= valore nella barra degli indirizzi durante la modifica del feed.
Una catena tipica è prima un feed Account, poi un feed Contact con AccountId impostato su {salesforce_id:12} (12 è l'ID del feed Account), quindi un feed Opportunità con AccountId impostato allo stesso modo. Utilizza lo stesso account Salesforce su ogni feed nella catena, perché un ID record esiste solo nell'organizzazione che lo ha emesso. Se il feed precedente non ha creato alcun record, perché la sua logica condizionale non corrispondeva o il controllo dei conflitti lo ha bloccato, il tag è vuoto e la ricerca rimane non impostata invece di prendere l'ID di un altro feed.
Mappatura delle liste di selezione a livello di campo
Per i campi a discesa, a selezione multipla, con pulsante di opzione e con casella di controllo, è possibile importare le opzioni direttamente da un elenco a discesa di Salesforce anziché digitarle manualmente. Sono disponibili due modalità per ciascun campo:
- Inserisci le opzioni (modificabili) Copia i valori della picklist nel campo di Gravity Forms una sola volta. L'amministratore può modificare o rimuovere le scelte in seguito. Ideale per chi desidera un punto di partenza, ma potrebbe modificare l'elenco in seguito.“
- Sincronizzazione in tempo reale (sempre allineata a Salesforce) Aggiorna le opzioni a ogni rendering del modulo. Le opzioni vengono bloccate nell'editor del modulo per evitare modifiche. Utilizzare questa opzione quando Salesforce è l'unica fonte di dati affidabile (campi di stato, fonti dei lead, elenchi a discesa Stato/Paese, ecc.).
Le etichette di Salesforce vengono mostrate agli utenti del modulo; i valori di Salesforce vengono inviati. Quindi il modulo mostra “California” ma l’inserimento viene inviato CA, esattamente ciò che si aspettano gli elenchi a discesa Stato/Paese di Salesforce, e non hai bisogno di una tabella di mappatura.
Anche qui il tipo di record è presente in un elenco a discesa. Per qualsiasi oggetto con tipi di record selezionabili, il campo Tipo di record viene visualizzato accanto agli elenchi a discesa reali nella stessa interfaccia utente di mappatura dei campi. Il modulo mostra agli utenti il nome del tipo di record (ad esempio, "Donatore"); il valore inviato è l'ID del tipo di record di Salesforce. Mappa questo campo a RecordTypeId nel tuo feed e il tipo di record scelto verrà impostato sul record creato o aggiornato. Vengono elencati solo i tipi di record che l'utente Salesforce connesso può effettivamente assegnare (il tipo Master implicito e i tipi non disponibili vengono filtrati) e sono supportate entrambe le modalità di popolamento e sincronizzazione in tempo reale.
Il menu a tendina Oggetto Salesforce nella barra laterale di mappatura dei campi fissa gli otto oggetti standard più utilizzati (Account, Contatto, Lead, Opportunità, Caso, Campagna, Attività, Nota) in cima all'elenco, in modo da non dover scorrere tutti gli oggetti personalizzati dell'organizzazione per trovarli. Nella schermata delle impostazioni del feed, modificando l'oggetto o l'account, la mappatura dei campi, la corrispondenza dei campi e i selettori degli oggetti vengono ricaricati immediatamente da Salesforce, senza dover attendere il salvataggio.
Corrispondenza della chiave primaria (nessun duplicato)
La maggior parte degli amministratori di Salesforce non vuole che ogni invio di modulo crei un nuovo Lead. Abilita Corrispondenza della chiave primaria Aggiornare i record esistenti quando viene trovata una corrispondenza.
- Scegli un campo filtrabile, di tipo idLookup o externalId come chiave di corrispondenza (l'indirizzo email è il più comune).
- Se viene trovato un record corrispondente, questo viene aggiornato. In caso contrario, viene creato un nuovo record (quando la modalità di sincronizzazione è impostata su "Crea o aggiorna se esiste un record").
- Utilizzare un ID esterno personalizzato (
Customer_Reference__c) per la corrispondenza tra sistemi. - Protezione integrata contro la condizione di gara "il record corrispondente è stato eliminato in Salesforce". Se Salesforce restituisce un errore 404 per un ID memorizzato, il plugin crea automaticamente un nuovo record.
Verifica dei conflitti
La corrispondenza della chiave primaria aggiorna un record quando ne trova uno. A volte preferiresti che il feed venisse interrotto. controllo dei conflitti Prima di creare qualsiasi elemento, il feed verifica la presenza di un record Salesforce esistente e si interrompe se ne trova uno.
Mentre la corrispondenza dei duplicati funziona su una singola chiave, il controllo dei conflitti combina diversi campi in un'unica ricerca. Mappando Nome e Cognome insieme, è possibile individuare la stessa persona che invia dati utilizzando un indirizzo email diverso, cosa che una corrispondenza basata solo sull'email non permetterebbe. Ogni riga mappata deve corrispondere allo stesso record affinché il feed si interrompa, quindi una sovrapposizione parziale non è sufficiente ad attivarlo.
- È possibile mappare tutti i campi di Salesforce necessari ai campi di Gravity Forms, inclusi i valori personalizzati.
- Imposta un messaggio di conflitto personalizzato. Questo verrà registrato nella voce e inviato nell'e-mail di notifica dell'errore, in modo da poter scoprire il motivo per cui il record non è stato creato.
- Si applica solo quando il feed creerebbe un record. Un record trovato tramite corrispondenza duplicata viene comunque aggiornato normalmente.
- Per singolo feed e disponibile sugli account OAuth.
Caricamento file
I campi di caricamento file di Gravity Forms possono essere allegati al record di Salesforce come Versione del contenuto / Collegamento al documento del contenuto, quindi vengono visualizzati nell'elenco correlato File del record. Dimensione massima del file configurabile, da 1 a 25 MB per file, con valore predefinito di 10.
Per allegare i file, mappa ciascun campo di caricamento file al File — allega al record di Salesforce riga nella mappatura dei campi Salesforce del feed. Aggiungere la riga una volta per ogni campo di caricamento. Ogni campo mappato viene allegato e un campo multifile invia tutti i file che contiene. I file vengono caricati la prima volta che un feed sincronizza una voce e la funzione "Reinvia a Salesforce" li invia nuovamente dopo un errore.
Sincronizzazione delle note
Inserire i dati del modulo in Salesforce Nota collegato al record principale. Sia il titolo della nota che il corpo della nota supportano i tag di unione, quindi puoi formattarli come preferisci. Lascia il corpo vuoto e utilizza {all_fields}.
Facoltativamente, è possibile replicare in Salesforce anche le note aggiunte dall'amministratore ai moduli Gravity Forms, mantenendo così la cronologia delle conversazioni in un unico posto. Eliminando la nota in Gravity Forms, anche la copia in Salesforce verrà eliminata.
Adesione alla campagna
Aggiungi il Lead o il Contatto creato dal modulo a Salesforce Campagna. Seleziona la casella, inserisci un ID campagna (un tag di unione funziona, quindi un campo nascosto può selezionare la campagna) e il plugin crea un record CampaignMember che collega il nuovo Lead o Contatto alla Campagna. Imposta il tuo stato di membro oppure lascialo e il plugin lo utilizzerà Responded.
Cessione del proprietario
Per alimentazione:
- Imposta un personalizzato ID proprietario (supporta i tag di unione, quindi è possibile instradare in base ai valori del modulo).
- Attiva/disattiva
Sforce-Auto-Assign: FALSEintestazione per ignorare le regole di assegnazione standard quando necessario.
Precompilazione da Salesforce
Invia agli utenti di ritorno un modulo personalizzato, precompilato con i loro dati Salesforce esistenti. Moduli di rinnovo, moduli di aggiornamento dell'account, flussi di completamento del profilo.
- Associa qualsiasi campo di Salesforce a qualsiasi campo di Gravity Forms per il precompilazione. L'oggetto di precompilazione predefinito è quello su cui scrive il feed, ma puoi leggere da un oggetto diverso, ad esempio precompilando dal campo Contatto mentre il feed crea un Caso.
- La funzione di precompilazione funziona per gli amministratori che hanno effettuato l'accesso non appena viene abilitata. Per utilizzarla su un modulo pubblico, spuntare Consentire richieste di precompilazione pubbliche nei moduli front-end anche.
- URL firmati da HMAC con TTL impedire l'enumerazione degli ID dei record sui moduli pubblici e la firma è attiva per impostazione predefinita con una scadenza di 15 minuti. Senza firme, chiunque potrebbe iterare
?sfid=001000...e prelevare dati che non dovrebbero avere. - Il Generatore di link precompilati firmati È integrato nelle impostazioni del feed. Incolla l'ID del record e ottieni un URL firmato con data di scadenza. Utilizzalo nelle email di marketing, nei portali clienti o nei flussi self-service.
- Gli amministratori che hanno effettuato l'accesso possono utilizzare ID record non elaborati, senza firme, a scopo di test.
- Parametro di query per feed (predefinito)
?sfid=) mantiene gli URL puliti.
Sincronizzazione del ciclo di vita delle voci
La creazione dei record è automatica una volta salvato il feed. Il resto del ciclo di vita può essere attivato dall'utente in Moduli → Impostazioni → Salesforce → Impostazioni di sincronizzazione, in modo che un'integrazione scriva solo i dati richiesti.
- Modifica una voce → il record di Salesforce viene aggiornato, una volta abilitata l'opzione "Sincronizza gli aggiornamenti quando le voci vengono modificate" (
gform_after_update_entry). - Elimina una voce → il record di Salesforce è lasciato intatto, Sempre. In WordPress, il cestino è reversibile, quindi il record rimane al suo posto.
- Recuperare dai rifiuti → Con l'opzione "Risincronizza i dati delle voci quando vengono ripristinate dal cestino/spam" abilitata, tutte le modifiche apportate mentre la voce era nel cestino vengono applicate al record. Se nel frattempo il record è stato eliminato manualmente in Salesforce e la modalità di sincronizzazione del feed è "Crea o aggiorna se esiste un record" (impostazione predefinita), viene creato un nuovo record sostitutivo.
- Eliminare definitivamente una voce (Svuota il Cestino o "Elimina definitivamente") → il record di Salesforce viene eliminato, se hai abilitato l'opzione "Elimina i record di Salesforce quando le voci vengono eliminate definitivamente".
Sincronizzazione in background
Le chiamate API di Salesforce non vengono eseguite mentre il visitatore è in attesa. I feed vengono elaborati in background dopo il completamento dell'invio, utilizzando l'elaborazione asincrona dei feed di Gravity Forms, in modo che una risposta lenta da parte di Salesforce non si traduca mai in una pagina di ringraziamento lenta.
Una volta che il processo in background rileva il flusso, la voce diventa blu In attesa di stato, che viene sostituito dal risultato finale di successo o errore non appena Salesforce risponde. Apri una voce di prova subito dopo l'invio e In sospeso potrebbe essere la prima cosa che vedi. Se un feed deve terminare prima della pagina di ringraziamento, ad esempio per mostrare {salesforce_id} su di esso, spunta Elabora questo feed durante l'invio su quel feed.
Consapevolezza dei componenti aggiuntivi di pagamento
Se il tuo modulo accetta un pagamento tramite un componente aggiuntivo di pagamento di Gravity Forms (Stripe, PayPal Standard, PayPal Commerce, Authorize.Net, Square, 2Checkout, Mollie e gli altri), abilita “"Elabora il feed di Salesforce solo al ricevimento del pagamento."” Sotto Azioni successive al pagamento Nelle impostazioni del feed del componente aggiuntivo di pagamento (l'opzione appare una volta che il modulo ha un feed di Salesforce) è possibile posticipare la sincronizzazione con Salesforce fino alla conferma del pagamento, in modo che i carrelli abbandonati non lascino mai lead incompleti.
Al momento dell'invio, la sincronizzazione con Salesforce viene sospesa se la voce ha un pagamento in sospeso. Quando il componente aggiuntivo di pagamento conferma la transazione (tramite il framework standard di feed ritardati di Gravity Forms), la sincronizzazione con Salesforce viene eseguita normalmente. Se il pagamento non va a buon fine o viene annullato, la sincronizzazione non viene mai eseguita.
Funziona con qualsiasi componente aggiuntivo di pagamento basato sul framework standard di Gravity Forms, ovvero tutti quelli ufficiali.
Log ed esportazione in formato CSV
Ogni sincronizzazione di Salesforce, riuscita o fallita, viene registrata con lo stato di sincronizzazione e il messaggio esatto restituito da Salesforce. Registri di Salesforce La pagina (Moduli → Registri di Salesforce) mostra:
- ID voce, modulo, stato, ID record, messaggio e ora di sincronizzazione
- Filtro per modulo e impaginazione a 50 righe per pagina.
- Esportazione CSV della vista corrente, quindi il filtraggio tramite modulo esporta quel modulo
Attivando la registrazione dei log di Gravity Forms, verranno scritti nel log di Gravity Forms anche il payload della richiesta in uscita e il messaggio di errore restituito da Salesforce, che di solito è il modo più rapido per vedere esattamente cosa ha contestato Salesforce.
Se preferisci non conservare affatto la cronologia di sincronizzazione, “"Disabilita la memorizzazione dei log delle voci di Salesforce (stato/messaggi/cronologia di sincronizzazione)"” impedisce che venga registrato e mantiene wp_gf_entry_meta Snello. Da sapere prima di spuntare la casella: la pagina dei log di Salesforce legge la cronologia, quindi si disattiva e la barra laterale della voce si riduce al collegamento al record e al pulsante "Invia di nuovo", e la cronologia esistente viene cancellata quando si abilita l'impostazione. Gli ID dei record rimangono nella voce, quindi i tag di unione e i collegamenti ai record continuano a funzionare.
Notifiche via e-mail in caso di errore di sincronizzazione
Ricevi una notifica nel momento in cui Salesforce rifiuta un payload, con l'ID della voce e il messaggio di errore esatto restituito da Salesforce. Spunta “"Invia email di notifica degli errori"” in Segnalazione errori nelle impostazioni Salesforce del plugin, quindi imposta il destinatario una volta E-mail di notifica (Se lasciato vuoto, verrà utilizzato l'indirizzo email dell'amministratore di WordPress).
Utile per catturare:
- Un campo obbligatorio di Salesforce che improvvisamente non è più mappato (qualcuno ha modificato il modulo).
- Un valore di tipo picklist che non esiste più in Salesforce
- Limiti API, regole di convalida o regole del flusso di lavoro che rifiutano il record
- Un'app connessa che necessita di una nuova autorizzazione
Il raggiungimento del limite di richieste API di Salesforce viene segnalato come limitazione della frequenza anziché come un misterioso errore di invio, quindi sai che devi aspettare invece di iniziare il debug della mappa dei campi.
Risolvi il problema, premi Reinvia a Salesforce sulle voci interessate e i record vengono inseriti. L'alternativa è scoprire due settimane dopo che 30 lead non sono mai arrivati al CRM.
Barra laterale Salesforce per ogni voce
Ogni schermata dei dettagli di inserimento di Gravity Forms mostra un dedicato Salesforce riquadro nella barra laterale con lo stato in tempo reale della sincronizzazione:
- Stato, codificato a colori: verde Successo, rosso Errore, blu In sospeso, grigio Saltato
- Oggetto, Quale oggetto Salesforce è stato creato (Lead, Contatto, oggetto personalizzato, ecc.)
- ID record, cliccabile, si apre direttamente in Salesforce in una nuova scheda
- Account, che ha collegato l'account Salesforce e gestito la sincronizzazione (utile quando ne hai più di uno)
- Sincronizzato, timestamp dell'ultimo tentativo di sincronizzazione
- Messaggio di errore, l'errore esatto restituito da Salesforce, se applicabile
- Risultati del feed, una ripartizione per feed quando più feed vengono eseguiti sullo stesso modulo
È il modo più rapido per verificare che un modulo stia effettivamente inviando dati a Salesforce e per individuare con precisione l'inserimento che ha causato l'errore in caso di problemi.
Reinvia a Salesforce
Le iscrizioni comportano un Reinvia a Salesforce Pulsante nella schermata dei dettagli della voce, per gli utenti che possono gestire le impostazioni del plugin. Fa più che risincronizzare il record principale: cancella i flag di deduplicazione degli effetti collaterali in modo che anche note, file e appartenenze alle campagne riprovino. Usalo quando:
- Salesforce non era attivo quando è stata eseguita la sincronizzazione originale
- Hai corretto la mappatura del feed dopo una serie di invii falliti.
- Vuoi inviare i dati di test a una sandbox senza inviare nuovamente il modulo
Tag di unione
{salesforce_id} Questo è l'ID del record Salesforce creato o aggiornato dal feed più recente per questa voce. I feed che utilizzano la modalità ID organizzazione (Web-to-Lead / Web-to-Case) inviano i dati a un endpoint che non restituisce alcun ID record, quindi non impostano mai questo tag o la sua variante per feed.
{salesforce_id:FEED_ID} Si tratta dell'ID del record Salesforce creato da uno specifico feed. Utilizzalo quando più feed vengono eseguiti sullo stesso modulo.
I tag specifici del feed funzionano anche all'interno delle impostazioni del feed. Mappa un campo di ricerca a Valore personalizzato e inserisci {salesforce_id:FEED_ID} per collegare il record a un feed creato in precedenza. I feed vengono eseguiti nell'ordine dell'elenco dei feed e l'ID del feed è il fid= valore nell'URL di modifica del feed. Un tag per un feed che non ha creato alcun record si risolve in un valore vuoto.
{salesforce_link} è un collegamento diretto al record di Salesforce, creato a partire dall'URL dell'istanza di quell'account e dall'ID del record, ad esempio https://yourorg.my.salesforce.com/00Q5g00000ABCDE. Salesforce invia queste informazioni alla pagina del record Lightning.
{salesforce_link:FEED_ID} Si tratta di un collegamento diretto al record creato da uno specifico feed. Utile quando un modulo ha più feed che scrivono su diverse organizzazioni Salesforce, ad esempio uno per l'ambiente di test e uno per l'ambiente di produzione, perché ogni variante utilizza l'URL dell'istanza dell'account di quel feed.
Entrambi i tag funzionano ovunque Gravity Forms valuti i tag di unione, con una regola di temporizzazione. I feed vengono eseguiti in background dopo il completamento dell'invio, quindi il messaggio di conferma e qualsiasi notifica inviata all'invio del modulo vengono visualizzati prima che il record esista e i tag risultano vuoti in quel momento. Vengono compilati ovunque Gravity Forms valuti i tag di unione dopo che la sincronizzazione è terminata. Per averli nella pagina di conferma e nelle notifiche di invio, spuntare Elabora questo feed durante l'invio sul feed; il visitatore attende quindi la risposta di Salesforce. Usi comuni:
- Collega i record tra i feed: in un feed successivo, imposta un campo di ricerca come AccountId o ContactId sul valore personalizzato
{salesforce_id:FEED_ID}del feed che ha creato il record principale. - Notifiche inviate in seguito: "Nuovo lead in Salesforce → {salesforce_link}" viene compilato quando si utilizza la funzione "Reinvia notifiche" di Gravity Forms sull'inserimento dopo l'esecuzione della sincronizzazione.
- Qualsiasi componente aggiuntivo o codice personalizzato che valuta i tag di unione dopo la sincronizzazione, ad esempio per passare
{salesforce_id}a un sistema a valle.
Traduzioni
Questo plugin è pronto per la traduzione. Puoi tradurlo in qualsiasi lingua utilizzando il plugin gratuito Loco Translate plugin o qualsiasi altro strumento di traduzione per WordPress.
Lingua predefinita: inglese (en_US)
Domande frequenti
Questo richiede Gravity Forms?
Sì. Gravity Forms 2.7 o versioni successive devono essere installate e attive. Si tratta di un componente aggiuntivo per Gravity Forms, quindi non funziona autonomamente.
Quali versioni di WordPress e PHP sono supportate?
Compatibile con WordPress 6.5 e versioni successive e PHP 8.0 e versioni successive. Testato fino a WordPress 7.0.
Posso connettermi a un ambiente di test (Sandbox) di Salesforce?
Sì. Usa https://test.salesforce.com Utilizza questo URL come URL di accesso quando colleghi l'account. Puoi avere un account sandbox e un account di produzione collegati allo stesso sito WordPress contemporaneamente.
Questo sistema supporta più account Salesforce su un singolo sito?
Sì. Collega tutti gli account che desideri. Ogni feed sceglie automaticamente l'account con cui sincronizzarsi. Casi d'uso comuni: ambienti di test e di produzione, organizzazioni clienti di agenzie o strutture aziendali con società madri e controllate.
È possibile sincronizzare i dati con oggetti Salesforce personalizzati?
Sì. Nel menu a discesa Oggetto Salesforce del feed, scegli "Personalizzato (digita di seguito)" e inserisci il nome API del tuo oggetto personalizzato (ad esempio, My_Object__cLe liste a discesa, il caricamento di file, le ricerche e il precompilazione funzionano tutti allo stesso modo con gli oggetti personalizzati. Gli oggetti personalizzati richiedono un account OAuth; la modalità ID organizzazione è limitata a Lead e Case.
È possibile creare, tramite un singolo modulo, un Account, un Contatto e un'Opportunità collegati tra loro?
Sì. Aggiungi un feed per ogni oggetto e trascinali nell'ordine corretto nell'elenco dei feed: prima Account, poi Contatto, poi Opportunità. I feed vengono eseguiti in quest'ordine. Nei feed Contatto e Opportunità, mappa ID account A Valore personalizzato e inserisci {salesforce_id:FEED_ID} con l'ID dell'Accountfeed, che è il fid= valore nel suo URL di modifica. Ogni record arriva con il suo lookup già puntato all'Account dalla stessa sottomissione. Lo stesso vale per qualsiasi campo lookup, standard o personalizzato, purché i feed utilizzino lo stesso account Salesforce.
Perché il mio oggetto Salesforce non compare nel menu a tendina?
L'elenco degli oggetti proviene da Salesforce e include solo gli oggetti che l'utente connesso può creare. Se manca un oggetto Lead, un Contatto o un oggetto personalizzato, significa che all'utente autorizzato non è stata concessa l'autorizzazione di creazione, solitamente tramite una licenza di integrazione solo API senza set di autorizzazioni associato. Correggi il problema in Salesforce, quindi attendi che la cache degli oggetti del plugin (che rimane vuota per sei ore) si aggiorni; la riconnessione dell'account non la cancella. "Personalizzato (tipo di seguito)" funziona come soluzione temporanea immediata.
Funziona con Salesforce Pardot (Account Engagement)?
Non direttamente. Il plugin scrive record Salesforce standard come Lead e Contact tramite l'API REST di Salesforce e non contiene codice specifico per Pardot. Se la tua organizzazione utilizza il connettore Salesforce-Pardot, Pardot rileva questi record nello stesso modo in cui rileva qualsiasi altro record Salesforce. Cosa fa questo plugin non Come fare: scrivere direttamente su Pardot Prospects o Pardot Lists, bypassare Salesforce o interagire con oggetti specifici di Pardot (reindirizzamenti personalizzati, moduli Pardot, ecc.).
Come gestisce la mappatura a elenco a discesa i campi Stato e Paese con codici?
Il plugin mostra Salesforce etichetta all'utente del modulo (ad esempio, "California") ma invia l'elenco a discesa valore (per esempio, CA), esattamente ciò che richiedono gli elenchi a discesa Stato/Paese di Salesforce, quindi non hai bisogno di una tabella di traduzione da parte tua.
Qual è la differenza tra la modalità "Popola" e la modalità "Sincronizzazione in tempo reale" per le liste a discesa?
- Popolare Copia i valori dell'elenco a discesa di Salesforce nel campo del modulo una sola volta. Dopodiché, puoi modificare, filtrare o riorganizzare le opzioni. Utile quando si desidera un punto di partenza ma si potrebbe poi personalizzare l'elenco.
- Sincronizzazione in diretta Il plugin riapplica le scelte di Salesforce a ogni rendering del modulo, in modo che le modifiche apportate in Salesforce vengano visualizzate automaticamente nel modulo una volta aggiornata la cache dei campi del plugin (che si aggiorna dopo sei ore). L'editor del modulo blocca le scelte per evitare modifiche accidentali. Utile quando Salesforce è l'unica fonte di dati affidabile (campi di stato, fonti dei lead, elenchi di paesi, ecc.).
Posso consentire agli utenti del modulo di scegliere un tipo di record di Salesforce?
Sì. Apri il campo Menu a tendina/Selezione multipla/Pulsante di opzione/Casella di controllo, abilita la mappatura dei campi di Salesforce, seleziona l'oggetto e scegli Tipo di record dall'elenco dei campi. Il modulo mostra agli utenti il nome del tipo di record (ad esempio, "Donatore"); il valore inviato è l'ID del tipo di record di Salesforce. Quindi, mappa quel campo di Gravity Forms a RecordTypeId nella mappatura del feed in modo che il tipo di record scelto venga impostato sul record creato o aggiornato. Vengono elencati solo i tipi di record disponibili per l'utente Salesforce connesso.
È possibile evitare la creazione di record duplicati?
Sì, in due modi. Abilita Corrispondenza della chiave primaria Nelle impostazioni del feed, seleziona un campo univoco (l'indirizzo email è il più comune, oppure puoi usare un ID esterno personalizzato). Il feed aggiornerà un record esistente quando trova una corrispondenza e ne creerà uno nuovo in caso contrario.
Se preferisci che il feed si interrompa piuttosto che scrivere qualcosa, usa il controllo dei conflitti Invece, combina diversi campi in un'unica ricerca, quindi mappando Nome e Cognome insieme si individua la stessa persona che invia il modulo utilizzando un indirizzo email diverso. Quando tutte le righe mappate corrispondono allo stesso record, il feed si interrompe e registra il messaggio di conflitto associato alla voce.
Qual è la differenza tra la corrispondenza della chiave primaria e il controllo dei conflitti?
La corrispondenza della chiave primaria trova un record e aggiornamenti esso. Il controllo dei conflitti trova un record e fermate. Utilizza la corrispondenza quando un invio ripetuto deve mantenere aggiornato un record; utilizza il controllo dei conflitti quando un secondo invio rappresenta un problema di cui vuoi essere informato anziché gestirlo. Funzionano insieme: il controllo dei conflitti si attiva solo quando il feed sta per creare un record, quindi un record trovato tramite la corrispondenza dei duplicati viene comunque aggiornato normalmente.
È possibile precompilare un modulo con dati già presenti in Salesforce?
Sì. Abilita Precompilazione da Salesforce in un feed e mappa i campi Salesforce che desideri importare. Per un modulo pubblico, seleziona anche Consentire richieste di precompilazione pubbliche nei moduli front-end, altrimenti il precompilazione viene eseguita solo per gli amministratori che hanno effettuato l'accesso. Quindi invia agli utenti un URL come ?sfid=001XXXXXXXXXXXX. Le richieste firmate sono richieste di default con una scadenza di 15 minuti; utilizzare la funzione integrata Generatore di link precompilati firmati per creare quegli URL per le campagne email o i flussi self-service.
La modifica di una voce aggiorna il record in Salesforce?
Una volta attivato, sì. Gli aggiornamenti delle voci, le eliminazioni definitive, il ripristino dal cestino e la sincronizzazione delle note delle voci sono gestiti tramite caselle di controllo separate in Moduli → Impostazioni → Salesforce → Impostazioni di sincronizzazione, e sono tutte attive all'avvio. La creazione di record non richiede alcuna configurazione, a parte il salvataggio di un feed; qualsiasi operazione che scriva su un record esistente è facoltativa, quindi il plugin non interferisce mai con la tua organizzazione in modi non richiesti.
Cosa succede se elimino una voce dal cestino e poi la ripristino?
Il record di Salesforce viene conservato durante il ciclo di eliminazione/ripristino. Solo cancellazione permanente Rimuove il record di Salesforce, e solo se hai abilitato questa opzione nelle impostazioni del plugin. Questo comportamento è in linea con quello nativo di WordPress: il cestino è reversibile, l'eliminazione definitiva no.
Perché la mia voce risulta contrassegnata in blu con lo stato "In sospeso"?
È normale e di solito scompare quando aggiorni la pagina. I feed vengono elaborati in background, quindi le chiamate API di Salesforce non bloccano mai l'invio del modulo. Poco prima di chiamare Salesforce, l'attività in background contrassegna la voce come In sospeso, quindi la sovrascrive con successo o errore non appena Salesforce risponde. Uno stato bloccato su In sospeso significa che l'attività è iniziata ma non è mai terminata, di solito a causa di un timeout PHP o di un errore irreversibile a metà richiesta, quindi abilita la registrazione di Gravity Forms e controlla il registro del componente aggiuntivo. Se un feed avrebbe dovuto essere eseguito ma la voce non mostra alcuno stato Salesforce, la coda non l'ha mai eseguita, il che di solito significa che il sito blocca le richieste di loopback a admin-ajax.php e WP-Cron, il meccanismo di fallback, è disabilitato.
Posso riprovare una sincronizzazione non riuscita?
Sì. Apri la schermata dei dettagli della voce e fai clic Reinvia a Salesforce. Elimina anche i flag di deduplicazione degli effetti collaterali, quindi note, file e appartenenze alle campagne vengono riprovati insieme al record principale.
Funziona con i componenti aggiuntivi di pagamento (Stripe, PayPal, ecc.)?
Sì. Il feed del componente aggiuntivo di pagamento (Stripe, PayPal e così via) riceve un Azioni successive al pagamento sezione con una “"Elabora il feed di Salesforce solo al ricevimento del pagamento."” Una casella di controllo che posticipa la sincronizzazione con Salesforce fino a quando il componente aggiuntivo di pagamento non conferma l'avvenuta transazione, in modo che i carrelli abbandonati non lascino mai indietro lead incompleti.
Questo programma supporta il caricamento di file da Gravity Forms?
Sì. I campi di caricamento file di Gravity Forms possono essere associati al record di Salesforce come ContentVersion / ContentDocumentLink, in modo che vengano visualizzati nell'elenco correlato File del record. Dimensione massima del file configurabile, da 1 a 25 MB per file, con valore predefinito di 10 MB.
Posso impedire al plugin di memorizzare la cronologia di sincronizzazione?
Sì. Spunta “"Disabilita la memorizzazione dei log delle voci di Salesforce (stato/messaggi/cronologia di sincronizzazione)"” nelle impostazioni del plugin e nessun stato, messaggio o timestamp di sincronizzazione viene scritto a wp_gf_entry_meta. Due cose da sapere prima: la pagina dei log di Salesforce viene creata a partire da quella cronologia, quindi smette di mostrare i risultati e la barra laterale delle voci si riduce al collegamento al record e al pulsante "Invia di nuovo", e la cronologia esistente viene cancellata quando si abilita l'impostazione. Gli ID record e gli ID account vengono comunque memorizzati, quindi i tag di unione, i collegamenti ai record e la funzione "Invia di nuovo" continuano a funzionare.
Come posso personalizzare il payload di Salesforce a livello di programmazione?
Utilizzare il pb_gfsf_payload filtro:
add_filter( 'pb_gfsf_payload', function ( $payload, $context ) {
// $context['feed'], ['entry'], ['form'], ['object'], ['account_id'], ['method']
return $payload;
}, 10, 2 );Il feed completo, la voce, il modulo, l'oggetto di destinazione, l'ID dell'account e il metodo di connessione (oauth o org_id) sono disponibili in $context in modo da poter prendere decisioni basandosi su una qualsiasi di esse.
Cosa succede se la mia organizzazione Salesforce non ha accesso alle API?
Utilizzo Modalità ID organizzazione. Utilizza l'endpoint Web-to-Lead/Web-to-Case legacy di Salesforce anziché l'API REST. Limitazioni: sono supportati solo gli oggetti Lead e Case e non sono disponibili aggiornamenti, eliminazioni, caricamenti di file, precompilazione o mappatura di elenchi a discesa. Per la maggior parte delle configurazioni di produzione, OAuth (l'impostazione predefinita) è la scelta migliore.
Quali policy OAuth di Salesforce sono supportate dal plugin?
Il plugin utilizza il flusso di codice di autorizzazione OAuth 2.0 con PKCE e supporta la rotazione del token di aggiornamento, consentendo di abilitare entrambe le opzioni sia sull'app connessa che sull'app client esterna senza interrompere la connessione. L'unica policy per il token di aggiornamento incompatibile è "Fai scadere immediatamente il token di aggiornamento", che impone una riautorizzazione completa ad ogni scadenza del token di accesso e non è compatibile con alcuna integrazione non presidiata.
Come fa la connessione OAuth a rimanere attiva?
Il plugin utilizza OAuth 2.0 con PKCE e aggiorna automaticamente il token di accesso utilizzando il refresh token. Finché la policy del refresh token dell'app connessa o dell'app client esterna non lo fa scadere ("valido fino a revoca" o con una scadenza fissa a lungo termine come i 365 giorni indicati nella nostra guida di configurazione), la connessione rimane attiva. Quando il refresh token scade, è necessario riconnettere l'account una sola volta. Se il refresh token non è più valido, consultare la domanda successiva. La causa è quasi sempre una policy o un'impostazione di ambito dell'app connessa. La rotazione del refresh token è supportata, quindi gli amministratori attenti alla sicurezza possono abilitare anche questa policy.
La connessione a Salesforce continua a interrompersi e devo riconnettermi. Perché?
Quasi sempre si tratta di una di queste tre cose lato Salesforce. La policy del token di aggiornamento dell'app connessa è impostata su "scadenza" anziché su "valido fino a revoca". L'app è stata configurata con "Accesso completo (full)", che non emette mai un token di aggiornamento. Oppure gli intervalli IP di accesso stanno bloccando il server, nel qual caso Salesforce rifiuta ogni aggiornamento e riconnettersi dallo stesso server non risolve il problema. Dalla versione 1.3.0, la schermata Account identifica il problema anziché mostrare un errore di sessione generico e registra l'ultima data di aggiornamento, l'ultima data di successo e l'ultima data di errore per ciascun account.
I dati vengono eliminati quando disinstallo il plugin?
Solo se acconsenti. Abilita “"Elimina tutti i dati del plugin durante la disinstallazione"” nelle impostazioni del plugin prima di disinstallarlo. Per impostazione predefinita, i registri di sincronizzazione e le impostazioni di connessione vengono conservati (in modo da non perdere la cronologia se lo riattivi in seguito).
Funziona con la cache/CDN?
Sì. Il plugin viene eseguito interamente lato server al momento dell'invio del modulo, quindi la cache e le configurazioni CDN non interferiscono con la sincronizzazione con Salesforce. Il codice JavaScript dell'editor di moduli viene caricato solo all'interno dell'area di amministrazione di WordPress (dove la cache è in genere disabilitata).
Funziona con una rete WordPress Multisite?
In breve
- Licenza illimitata: Attiva la modalità di rete una sola volta; un solo tasto può gestire le impostazioni di ogni sottosito e fornire supporto.
- Modalità di rete attiva: Ogni sottosito eredita la chiave di rete, quindi tutti possono eseguire feed di Salesforce e ricevere aggiornamenti immediatamente. L'attivazione del plugin a livello di rete non concede in licenza i sottositi.
- Piano limitato / nessuna licenza per sotto-siti: Le impostazioni di Salesforce di quel sottosito sono bloccate e i relativi feed registrano il messaggio "La sincronizzazione con Salesforce non è disponibile finché la licenza del plugin non sarà attiva" anziché sincronizzarsi.
- L'assistenza segue la licenza: I siti coperti dalla chiave attiva sono idonei.
Se disponi di una licenza Unlimited, puoi abilitare la Modalità di rete dal sito principale e distribuire la stessa chiave a tutti i sottositi in un'unica operazione (con avanzamento in tempo reale). I sottositi erediteranno automaticamente le impostazioni e il supporto gestiti dalla licenza.
Ganci
Filtri
pb_gfsf_payload
Filtra il payload che sta per essere inviato a Salesforce. Questa operazione viene eseguita per ogni creazione e aggiornamento su ogni feed, con il contesto completo della sincronizzazione (configurazione del feed, voce, modulo, oggetto di destinazione, account e metodo di connessione). Viene eseguita dopo che la mappatura dei campi e l'ID del proprietario sono stati applicati, ma prima della chiamata API, e la restituzione di un array vuoto viene trattata allo stesso modo di un feed senza campi mappati.
Parametri:
$payload(vettore): l'array associativo del nome del campo Salesforce → valore che sta per essere inviato.$context(vettore): contesto di sincronizzazione. Tasti:feed,entry,form,object,account_id,method(oauthper una connessione OAuth,org_id(per Web-to-Lead/Case).
Esempio: impostare una LeadSource predefinita per ogni Lead.
add_filter( 'pb_gfsf_payload', function ( $payload, $context ) {
if ( $context['object'] === 'Lead' && ! isset( $payload['LeadSource'] ) ) {
$payload['LeadSource'] = 'WordPress Form';
}
return $payload;
}, 10, 2 );Esempio: instradare feed diversi a diversi tipi di record.
add_filter( 'pb_gfsf_payload', function ( $payload, $context ) {
$feed_id = (int) ( $context['feed']['id'] ?? 0 );
if ( $feed_id === 12 ) {
$payload['RecordTypeId'] = '0125g000000XYZAAA';
}
return $payload;
}, 10, 2 );Esempio: riscrivere LeadSource in base all'ID del modulo.
add_filter( 'pb_gfsf_payload', function ( $payload, $context ) {
$form_id = (int) ( $context['form']['id'] ?? 0 );
$payload['LeadSource'] = match ( $form_id ) {
7 => 'Webinar Signup',
12 => 'Demo Request',
default => 'Website',
};
return $payload;
}, 10, 2 );pb_gfsf_multi_value_delimiter
Modifica il separatore utilizzato per unire le selezioni di un campo a selezione multipla o di caselle di controllo. Il valore predefinito è il punto e virgola richiesto dagli elenchi a selezione multipla di Salesforce. Sovrascrivilo quando uno di questi campi è mappato a un campo di testo semplice che richiede un separatore diverso.
Parametri:
$delimiter(corda): separatore,;per impostazione predefinita.$sf_field(corda): Nome dell'API del campo Salesforce in fase di scrittura.$raw_value(corda)ID del campo Gravity Forms mappato o tag di unione.$feed(vettore)Oggetto feed di Gravity Forms.
add_filter( 'pb_gfsf_multi_value_delimiter', function ( $delimiter, $sf_field ) {
return 'Interests__c' === $sf_field ? ', ' : $delimiter;
}, 10, 2 );pb_gfsf_allowed_salesforce_domains
Il componente aggiuntivo controlla ogni URL di accesso, URL di istanza e URL Web-to-Lead rispetto ai domini di Salesforce prima di inviare loro le credenziali o i dati di ingresso. L'elenco predefinito è salesforce.com, force.com, cloudforce.com e salesforce.mil, corrispondente a un confine di punto. Aggiungilo se la tua organizzazione è raggiungibile su un dominio Salesforce personalizzato.
Parametri:
$domains(vettore): suffissi registrabili, corrispondenti su un confine di punto.$url(corda): l'URL che viene controllato.
add_filter( 'pb_gfsf_allowed_salesforce_domains', function ( $domains ) {
$domains[] = 'example-crm.com';
return $domains;
} );pb_gfsf_http_timeout
Modifica il timeout, in secondi, applicato a ogni richiesta a Salesforce. Il valore predefinito è 20. I siti con reti lente o che inviano file di grandi dimensioni potrebbero necessitare di un valore maggiore; qualsiasi valore inferiore a uno o due secondi interromperà il normale funzionamento.
add_filter( 'pb_gfsf_http_timeout', function () {
return 45;
} );







