Digitalizace formulářů v aplikaci Customer Insights - Journeys
Digitalizace formuláře se používá k získávání příspěvků z existujících formulářů, které nebyly vytvořeny pomocí editoru formulářů Customer Insights - Journeys. Digitalizace formuláře se doporučuje, pokud váš stávající formulář odesílá položky také do jiných systémů než Dynamics 365 nebo pokud existující formulář obsahuje složitou logiku, kterou nelze snadno znovu vytvořit v editoru formulářů Customer Insights - Journeys. Pokud lze existující formulář znovu vytvořit pomocí editoru formulářů Customer Insights - Journeys, nedoporučuje se používat funkci digitalizace formuláře.
Zachycení formulářů používá ke zpracování odeslání stejné rozhraní API jako standardní formuláře. Pro zachycení formuláře platí stejné bezpečnostní upozornění.
Důležité
Digitalizace formuláře vyžaduje pomoc vývojáře. Vždy je snazší vytvořit formulář pomocí editoru formulářů Customer Insights - Journeys a vložit ho do své stávající stránky.
Důležité
Snímání formuláře vyžaduje řešení DynamicsMKT_Forms verze 1.1.35355 nebo vyšší. Při zřizování zkušební instance nebudete mít vždy automaticky nejnovější verzi. Ujistěte se, že jste provedli aktualizaci Customer Insights - Journeys před pokusem o zachycení formuláře.
Zapnutí zachycení formuláře
Funkce zachycení formuláře je ve výchozím nastavení vypnutá. Přepínač Zachycení formuláře můžete zapnout v části Nastavení>Přepínače funkcí>Formuláře.
Jak funguje digitalizace formuláře
Digitalizace formuláře napodobuje odeslání standardního Customer Insights - Journeys formuláře. Chcete-li propojit odeslání vašeho stávajícího formuláře s Customer Insights - Journeys, musíte vytvořit formulář pomocí editoru formulářů Customer Insights - Journeys. Jakmile formulář publikujete, můžete získat skript pro digitalizaci formuláře, který je třeba vložit do webové stránky obsahující váš stávající formulář. Skript obsahuje definici existujících polí formuláře mapujících atributy potenciálního zákazníka nebo entity kontaktu. Všechny příspěvky a analýzy najdete uvnitř Customer Insights - Journeys. Tento formulář můžete také použít při orchestraci cesty se spouštěčem Odeslání marketingového formuláře . Toto odeslání formuláře může také vytvořit nebo aktualizovat souhlas kontaktního místa a související účely nebo témata.
Průvodce digitalizací formulářů krok za krokem
Vytvoření digitalizace formuláře v editoru formulářů Customer Insights - Journeys
Chcete-li vytvořit nový skritp digitalizace formuláře, přejděte na Customer Insights - Journeys>Kanály>Formuláře a vyberte položku Nový na panelu příkazů.
Pojmenujte formulář a vyberte správnou cílovou skupinu. Důležitý je výběr cílové skupiny. Skript pro digitalizaci formuláře ->mapování polí a atributů je k dispozici pouze pro atributy zvolené cílové skupiny (entity).
Přidejte všechna pole, která chcete namapovat, do stávajících polí formuláře. Tento krok není povinný, mapování atributu > pole je definováno v kódu pro zachycení formuláře. Přidáním správných polí do formuláře se vygenerují zástupné znaky pro mapování atributů ve skriptu pro digitalizaci formuláře, což usnadňuje definici mapování.
Přidejte prvky souhlasu, jako je účel nebo téma, abyste je vytvořili a nakonfigurovali. Zjistěte další informace, jak spravovat souhlas s e-mailovými a textovými zprávami v Customer Insights - Journeys.
Důležité
Definice souhlasu musí být provedena v editoru formulářů. Změny provedené v nastavení souhlasu provedené ve fragmentu kódu pro digitalizaci formuláře budou ignorovány.
Přidejte tlačítko Odeslat. Tlačítko Odeslat je nutné pro úspěšné ověření formuláře před publikováním.
Publikujte formulář pomocí tlačítka Publikovat v pravém horním rohu obrazovky. Zkopírujte fragment kódu pro digitalizaci formuláře a vložte fragment kódu na svou webovou stránku s existujícím formulářem nebo předejte fragment kódu svému vývojáři. Fragment kódu již obsahuje odkaz na dokumentaci, která poskytuje pokyny vašemu vývojáři.
Důležité
Název domény, kde je hostován váš stávající formulář, musí být povolen pro externí hostování formuláře, jinak nebude odeslání formuláře digitalizováno. Další informace o ověřování domény.
Vložení skriptu digitalizace do vaší stránky a definice mapování
Fragment kódu zkopírovaný v předchozím kroku slouží jako šablona a je třeba jej upravit pro konkrétní případ použití. Musíte vyměnit všechny prvky označené jako ***Please fill***
ve vygenerované šabloně a přizpůsobte logiku svému scénáři.
Vaše stávající předložení formuláře je odesláno na adresu Customer Insights - Journeys pomocí JavaScript API, které je definováno v souboru FormCapture.bundle.js
a je součástí fragmentu.
Nastavení digitalizace formulářů se skládá z těchto kroků:
- Získejte odkaz na prvek formuláře na stránce.
- Definujte mapování polí formuláře na pole (atributy entity) v Customer Insights - Journeys.
- Definujte mapování polí souhlasu na modelu souhlasu v Customer Insights - Journeys.
- Odešlete předložení formuláře na Customer Insights - Journeys.
1. Získání odkazu na prvek formuláře
Chcete-li získat odkaz na prvek formuláře, můžete použít pomocnou funkci waitForElement
. Pracuje také s dynamicky vykreslovanými prvky a vrací příslib, který je vyřešen, jakmile je prvek s daným selektorem nalezen na stránce. Pro odkaz na selektory CSS, viz tato dokumentace.
Příklad:
<form id="form1">
...
</form>
<script>
d365mktformcapture.waitForElement("#form1").then(form => {
...
});
</script>
2. Definujte mapování polí formuláře
Pole ve formuláři je třeba namapovat na příslušná pole (atributy entity) v Customer Insights - Journeys. Mapování je definováno ve funkci d365mktformcapture.serializeForm(form, mappings)
.
Příklad:
<form id="form1">
<p>FirstName: <input type="text" name="firstName"/></p>
</form>
<script>
d365mktformcapture.waitForElement("#form1").then(form => {
const mappings = [
{
FormFieldName: "firstName",
DataverseFieldName: "firstname",
},
];
...
const serializedForm = d365mktformcapture.serializeForm(form, mappings);
// console.log(JSON.stringify(serializedForm)); // NOTE: enable for debugging
const payload = serializedForm.SerializedForm.build();
});
</script>
Parametr form
je načten funkcí waitForElement
popsanou v předchozí části. Parametr mappings
je pole s prvky následující struktury:
export interface IFormFieldMapping {
FormFieldName?: string; // name of form field
DataverseFieldName: string; // name of field on Dynamics 365 side
DataverseFieldValue?: string | IFormValueMapping[]; // optional - either a fixed value or a value mapping
}
export interface IFormValueMapping {
FormValue: string; // form field value
DataverseValue: string; // mapped value for that form field value that will be sent to Dynamics 365
}
Funkce je synchronní a vrací výsledek serializace s následujícím kontraktem:
export interface IFormSerializationResult {
FormFieldMappingResults: IFormFieldMappingResult[]; // Status for each of the defined mappings
SerializedForm: IFormSerializationBuilder; // The serialized form
}
export interface IFormFieldMappingResult {
Mapping: IFormFieldMapping; // The defined mapping
FormFieldMappingStatus: FormFieldMappingStatus; // Status of the mapping (see below for status values)
Message: string; // Optional - an error/warning message for the mapping
}
export enum FormFieldMappingStatus {
Success = 0,
NotFound = 1,
Error = 2
}
Ujistěte se, že zpracováváte všechny chyby vrácené serverem FormFieldMappingResults
. Můžete vytvořit užitečné zatížení pro Customer Insights - Journeys zavoláním serializedForm.SerializedForm.build()
.
2.1 Mapování polí sady OptionSet
Pro pole OptionSet
musíte definovat mapování na příslušnou hodnotu, která má být uložena v Customer Insights - Journeys. Ve vlastnosti DataverseFieldValue
můžete mapovat své stávající hodnoty polí OptionSet formuláře.
Příklad:
<form id="form1">
<p>Radio: <input type="radio" name="radioInput" value="option1"/><input type="radio" name="radioInput" value="option2"/></p>
</form>
<script>
...
const mappings = [
{
FormFieldName: "radioInput",
DataverseFieldName: "dvradioInput",
DataverseFieldValue: [
{ FormValue: "option1", DataverseValue: "1" },
{ FormValue: "option2", DataverseValue: "2" },
]
},
];
...
</script>
2.2 Mapování vyhledávacích polí
Nastavení výchozí hodnoty pro vyhledávací pole
V logice mapování pro vyhledávací pole můžete použít pouze statické (výchozí) hodnoty. Musíte definovat název pole a hodnotu, která má být uložena v Customer Insights - Journeys.
Příklad:
<form id="form1">
...
</form>
<script>
...
const mappings = [
{
DataverseFieldName: "currency",
DataverseFieldValue: "{\"Id\":\"ffffd6c1-b32d-ee11-bdf3-6045bded6105\",\"LogicalName\":\"transactioncurrency\"}"
},
];
...
</script>
Mapujte hodnotu vyhledávacího pole na pole ve formuláři
Hodnotu vyhledávacího pole můžete také namapovat na příslušnou hodnotu v existujícím poli formuláře.
Příklad:
<form id="form1">
<p>Radio: <input type="radio" name="currency" value="usd"/><input type="radio" name="currency" value="eur"/></p>
</form>
<script>
...
const mappings = [
{
FormFieldName: "currency",
DataverseFieldName: "transactioncurrencyid",
DataverseFieldValue: [
{ FormValue: "usd", DataverseValue: "{\"Id\":\"cd2cff48-08a3-ea11-a813-000d3a0a82b4\",\"LogicalName\":\"transactioncurrency\"}", },
{ FormValue: "eur", DataverseValue: "{\"Id\":\"91f1a052-259c-4719-a3ae-3a1d2987a3ed\",\"LogicalName\":\"transactioncurrency\"}", },
]
},
];
...
</script>
2.3 Mapování hodnot polí s vícenásobným výběrem
Pro pole multi-select
musíte definovat mapování na příslušnou hodnotu, která má být uložena v Customer Insights - Journeys. Ve vlastnosti DataverseFieldValue
můžete mapovat své stávající hodnoty polí s vícenásobným výběrem formuláře.
Příklad:
<form id="form1">
<p>Fieldset: <fieldset name="multiOptionInput">
<input type="checkbox" name="multiOptionInput" value="100000000">0</input>
<input type="checkbox" name="multiOptionInput" value="100000001">1</input>
<input type="checkbox" name="multiOptionInput" value="100000002">2</input>
</fieldset></p>
</form>
<script>
...
const mappings = [
{
FormFieldName: "multiOptionInput",
DataverseFieldName: "dvmultiOptionInput",
DataverseFieldValue: [
{ FormValue: "100000000", DataverseValue: "0" },
{ FormValue: "100000001", DataverseValue: "1" },
{ FormValue: "100000002", DataverseValue: "2" },
]
},
];
...
</script>
3. Definování mapování pole souhlasu
Pole souhlasu je třeba nakonfigurovat v editoru formulářů v Customer Insights - Journeys. Podle toho se automaticky generují mapování DataverseFieldName
a DataverseFieldValue
.
Příklad:
<form id="form1">
<p>Consent: <input type="checkbox" name="consentField"/></p>
</form>
<script>
...
const mappings = [
{
FormFieldName: "consentField",
DataverseFieldName: "msdynmkt_purposeid;channels;optinwhenchecked",
DataverseFieldValue: "10000000-0000-0000-0000-000000000004;Email;true",
},
];
...
</script>
4. Odešlete předložení formuláře na Customer Insights - Journeys.
Jakmile získáte odkaz na formulář, definujete mapování a serializujete formulář, můžete přidat posluchače událostí k události submit
přidat posluchače události a odeslat jej pomocí funkce d365mktformcapture.submitForm(captureConfig, payload)
. Toto volání vrátí příslib a chyby lze ošetřit v logice catch
.
Důležité
Pokud máte zavedenou vlastní validaci nebo kontrolu Captcha, ujistěte se, že jste formulář odeslali na Customer Insights - Journeys pouze v případě úspěšného ověření (například zkontrolujte isDefaultPrevented
na submit
událost nebo explicitně zavolejte submitForm
až po úspěšném ověření)
Příklad:
<form id="form1">
<p>FirstName: <input type="text" name="firstName"/></p>
</form>
<script>
d365mktformcapture.waitForElement("#form1").then(form => {
const mappings = [
{
FormFieldName: "firstName",
DataverseFieldName: "firstname",
},
];
form.addEventListener("submit", (e) => {
const serializedForm = d365mktformcapture.serializeForm(form, mappings);
// console.log(JSON.stringify(serializedForm)); // NOTE: enable for debugging
const payload = serializedForm.SerializedForm.build();
const captureConfig = {
FormId: "...", // the form id on Dynamics 365 side
FormApiUrl: "..." // the API url of the Dynamics 365 backend service where the form will be submitted to
}
d365mktformcapture.submitForm(captureConfig, payload)
.catch(e => {
// error handling
});
}, true);
});
</script>
Řešení problému
Volání koncového bodu odeslání selže s chybou CORS
Cross-Origin Resource Sharing (CORS) může způsobit selhání zachycení odeslání formuláře. Povolte doménu pro externí hostování formuláře. Další informace o ověřování domény.
Hodnoty souhlasu nejsou správně aktualizovány
Nastavte příslušná pole souhlasu v editor formulářů (viz Vytvoření digitalizace formuláře v editoru formulářů Customer Insights - Journeys) a použijte správné mapování vygenerovaná v procesu publikování.