Snimanje obrazaca u usluzi Customer Insights - Journeys
Prikupljanje obrazaca koristi se za dobivanje podnesaka iz postojećih obrazaca koji nisu stvoreni pomoću Customer Insights - Journeys uređivač obrazaca. Prikupljanje obrazaca preporučuje se ako postojeći obrazac šalje i podneske sustavima koji nisu Dynamics 365 ili ako postojeći obrazac sadrži složenu logiku koja se ne može lako ponovno stvoriti u Customer Insights - Journeys uređivač obrazaca. Ako se postojeći obrazac može ponovno stvoriti pomoću Customer Insights - Journeys uređivač obrazaca, nije preporučljivo koristiti značajku hvatanja obrazaca.
Prikupljanje obrazaca koristi isti API kao i standardni obrasci za obradu podnesaka. Ista sigurnosna obavijest vrijedi i za snimanje obrasca.
Važno
Za hvatanje obrazaca potrebna je pomoć razvojnog programera. Uvijek je lakše stvoriti obrazac pomoću uređivač obrazaca Customer Insights - Journeys i ugraditi ga na postojeću stranicu.
Važno
Za snimanje obrasca potrebna je verzija rješenja DynamicsMKT_Forms 1.1.35355 ili novija. Prilikom dodjele resursa probnoj instanci nećete uvijek automatski imati najnoviju verziju. Provjerite jeste li ažurirali Customer Insights - Journeys prije pokušaja snimanja obrasca.
Omogući hvatanje obrazaca
Značajka hvatanja obrasca po zadanom je onemogućena. Možete omogućiti preklopnik Hvatanje obrazaca u Postavkama>Značajka parametri>obrazaca.
Kako funkcionira hvatanje obrazaca
Hvatanje obrasca oponaša slanje standardnog Customer Insights - Journeys obrasca. Da biste povezali podneske postojećeg obrasca u Customer Insights - Journeys, morate stvoriti obrazac pomoću Customer Insights - Journeys uređivač obrazaca. Nakon što objavite taj obrazac, možete dobiti skriptu za hvatanje obrazaca koju je potrebno ugraditi u web-stranicu koja sadrži vaš postojeći obrazac. Skripta uključuje definiciju postojećih polja obrasca koja se preslikavaju na atribute entiteta potencijalnog klijenta ili kontakta. Sve podneske i analitiku možete vidjeti unutra Customer Insights - Journeys. Ovaj obrazac možete koristiti i u orkestraciji putovanja s okidačem Poslani marketinški obrazac. Ovo slanje obrasca također može stvoriti ili ažurirati pristanak na kontaktnu točku i povezane svrhe ili teme.
Detaljni vodič za hvatanje obrazaca
Stvaranje hvatanja obrasca u uređivač obrazaca Customer Insights - Journeys
Da biste stvorili novu skriptu obrasca za snimanje, idite na Customer Insights - Journeys>Obrasci>kanala i na naredbenoj traci odaberite Novo.
Dodijelite naziv obrascu i odaberite pravu publika. Izbor ciljne publika je važan. Mapiranje atributa> skripte skripte za hvatanje obrazaca dostupno je samo za atribute odabranog ciljnog publika (entiteta).
Dodajte sva polja koja želite mapirati u postojeća polja obrasca. Ovaj korak nije obavezan; Mapiranje atributa > polja definirano je u kodu za hvatanje obrasca. Dodavanje pravih polja u obrazac generira rezervirana mjesta za mapiranje atributa u skripti za hvatanje obrazaca što olakšava definiciju mapiranja.
Dodajte elemente pristanka kao što su Svrha ili tema da biste ih oblikovali i konfigurirali. Saznajte više o tome kako upravljati pristankom za e-poštu i tekstne poruke u Customer Insights - Journeys.
Važno
Definicija privole mora se izvršiti u uređivač obrazaca. Promjene postavki pristanka izvršene u isječak koda za hvatanje obrasca zanemarit će se.
Dodajte gumb Pošalji . Gumb za slanje potreban je za uspješnu provjeru valjanosti obrasca prije objavljivanja.
Objavite obrazac pomoću gumba Objavi u gornjem desnom kutu zaslona. Kopirajte isječak koda za hvatanje obrazaca i ugradite isječak koda na web-stranicu s postojećim obrascem ili predajte isječak koda razvojnom programeru. Isječak koda već uključuje vezu na dokumentaciju koja će voditi vašeg razvojnog programera.
Važno
Naziv domene u kojoj se nalazi postojeći obrazac mora biti omogućen za vanjski hosting obrasca, inače slanje obrasca neće biti zabilježeno. Saznajte više o provjeri autentičnosti domene.
Ugrađivanje skripte za snimanje na stranicu i definicija mapiranja
Isječak koda kopiran u prethodnom koraku predložak je i mora se prilagoditi određenom slučaju upotrebe. Morate zamijeniti sve elemente označene kao ***Please fill***
u generiranom predlošku i prilagoditi logiku scenariju.
Vaše postojeće slanje obrasca šalje se Customer Insights - Journeys pomoću JavaScript API-ja, definiranog u datoteci FormCapture.bundle.js
i uključenog u isječak.
Postava hvatanja obrazaca sastoji se od sljedećih koraka:
- Pronađite referencu na element obrasca na stranici.
- Definirajte mapiranje polja obrasca na poljima (atributima entiteta) u Customer Insights - Journeys.
- Definirajte mapiranje polja suglasnosti na modelu pristanka u Customer Insights - Journeys.
- Pošaljite slanje obrasca primatelju Customer Insights - Journeys.
1. Pronađite referencu na element obrasca
Da biste dobili referencu na element obrasca, možete koristiti pomoćnu waitForElement
funkciju. Također radi s dinamički prikazanim elementima i vraća obećanje koje se rješava nakon što se element s danim biračem pronađe na stranici. Za referencu CSS birača pogledajte ovu dokumentaciju.
Primjer:
<form id="form1">
...
</form>
<script>
d365mktformcapture.waitForElement("#form1").then(form => {
...
});
</script>
2. Definirajte mapiranje polja obrasca
Polja u obrascu moraju se mapirati u odgovarajuća polja (atributi entiteta) u Customer Insights - Journeys. Mapiranje je definirano u funkciji d365mktformcapture.serializeForm(form, mappings)
.
Primjer:
<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>
Parametar form
se dohvaća funkcijom opisanom waitForElement
u prethodnom odjeljku. Parametar mappings
je polje s elementima sljedeće strukture:
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
}
Funkcija je sinkrona i vraća rezultat serijalizacije sa sljedećim ugovorom:
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
}
Provjerite rješavate li sve pogreške koje FormFieldMappingResults
je vratio. Korisni teret možete kreirati pozivom Customer Insights - Journeys serializedForm.SerializedForm.build()
.
2.1 Mapiranje polja skupa mogućnosti
Za OptionSet
polja morate definirati mapiranje na odgovarajuću vrijednost u kojoj treba pohraniti Customer Insights - Journeys. Postojeće vrijednosti polja skupa DataverseFieldValue
mogućnosti obrasca možete mapirati u svojstvu.
Primjer:
<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 Mapiranje polja pretraživanja
Postavljanje zadane vrijednosti za polje pretraživanja
Statičke (zadane) vrijednosti možete koristiti u logici mapiranja za polja pretraživanja. Morate definirati naziv polja i vrijednost u kojoj treba pohraniti Customer Insights - Journeys.
Primjer:
<form id="form1">
...
</form>
<script>
...
const mappings = [
{
DataverseFieldName: "currency",
DataverseFieldValue: "{\"Id\":\"ffffd6c1-b32d-ee11-bdf3-6045bded6105\",\"LogicalName\":\"transactioncurrency\"}"
},
];
...
</script>
Mapiranje vrijednosti polja pretraživanja u polje u obrascu
Vrijednost polja pretraživanja možete mapirati i na odgovarajuću vrijednost u postojećem polju obrasca.
Primjer:
<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 Mapiranje vrijednosti polja s višestrukim odabirom
Za multi-select
polja morate definirati mapiranje na odgovarajuću vrijednost u kojoj treba pohraniti Customer Insights - Journeys. Postojeće vrijednosti polja za višestruki DataverseFieldValue
odabir obrasca možete mapirati u svojstvu.
Primjer:
<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. Definirajte mapiranje polja pristanka
Polja pristanka moraju biti konfigurirana u uređivač obrazaca u sustavu Customer Insights - Journeys. Mapiranja DataverseFieldName
i DataverseFieldValue
automatski se generiraju u skladu s tim.
Primjer:
<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. Pošaljite podnesak obrasca na Customer Insights - Journeys
Nakon što dobijete referencu na obrazac, definirate mapiranja i serijalizirate obrazac, možete dodati slušatelja submit
događaja događaju i poslati ga pomoću d365mktformcapture.submitForm(captureConfig, payload)
funkcije. Ovaj poziv vraća obećanje, a pogreške se mogu rješavati catch
logikom.
Važno
Ako imate prilagođenu provjeru valjanosti ili Captcha provjeru, obavezno pošaljite obrazac Customer Insights - Journeys samo u slučaju uspješne provjere valjanosti (na primjer, provjerite isDefaultPrevented
submit
događaj ili izričito nazovite submitForm
tek nakon prolaska provjere valjanosti)
Primjer:
<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>
Rješavanje problema
Poziv na krajnja točka za slanje ne uspijeva zbog CORS pogreške
Dijeljenje resursa s više izvora (CORS) može uzrokovati neuspjeh snimanja slanja obrasca. Omogućite domenu za vanjski hosting obrazaca. Saznajte više o provjeri autentičnosti domene.
Vrijednosti pristanka ne ažuriraju se ispravno
Provjerite jeste li postavili odgovarajuća polja pristanka u uređivač obrazaca (pogledajte Stvaranje prikupljanja obrazaca u Customer Insights - Journeys uređivač obrazaca) i jeste li koristili ispravna mapiranja generirana u postupku objavljivanja.