Vormide jäädvustamine rakenduses Customer Insights - Journeys
Vormihõivet kasutatakse edastuste toomiseks olemasolevatelt vormidelt, mis ei ole loodud väljaredaktor Customer Insights - Journeys abil. Vormihõive on soovitatav, kui teie olemasolev vorm saadab edastusi ka muudesse süsteemidesse peale Dynamics 365-i või kui olemasolev vorm sisaldab keerukat loogikat, mida ei saa väljaredaktor-s Customer Insights - Journeys hõlpsasti uuesti luua. Kui olemasolevat vormi saab väljaredaktor abil Customer Insights - Journeys uuesti luua, pole vormihõive funktsiooni kasutamine soovitatav.
Vormihõive kasutab edastuste töötlemiseks sama API-t kui standardvormid. Sama turvateatis kehtib ka vormihõive kohta.
Oluline
Vormihõive nõuab arendaja abi. Vormi on alati lihtsam luua väljaredaktor abil Customer Insights - Journeys ja manustada see olemasolevale lehele.
Oluline
Vormihõive nõuab DynamicsMKT_Forms lahenduse versiooni 1.1.35355 või uuemat. Proovieksemplari ettevalmistamisel ei ole teil alati automaatselt uusimat versiooni. Enne vormi hõivamise proovimist veenduge, et oleksite seda värskendanud Customer Insights - Journeys .
Vormihõive lubamine
Vormi hõivamise funktsioon on vaikimisi keelatud. Tumblernupu Vormihõives saate lubada jaotises Sätted>Funktsioon aktiveerib>vormid.
Kuidas vormihõive toimib?
Vormihõive jäljendab standardvormi Customer Insights - Journeys esitamist. Olemasoleva vormi Customer Insights - Journeys edastuste linkimiseks peate looma vormi, kasutades Customer Insights - Journeys väljaredaktor. Kui olete vormi avaldanud, saate hankida vormihõiveskripti, mis tuleb manustada olemasolevat vormi sisaldavale veebilehele. Skript sisaldab olemasolevate vormiväljade määratlust, mis vastendatakse müügivihje või kontaktiolemi atribuutidega. Sees näete kõiki edastusi ja analüüse Customer Insights - Journeys. Seda vormi saate kasutada ka teekonna orkestreerimisel turundusvormi edastatud päästikuga . Selle vormi esitamisega saab luua või värskendada ka kontaktpunkti nõusolekut ja sellega seotud eesmärke või teemasid.
Samm-sammuline juhend vormide hõivamiseks
Vormihõive Customer Insights - Journeys loomine väljaredaktor
Uue hõivevormi skripti loomiseks minge jaotisse Customer Insights - Journeys>Kanalivormid> ja valige käsuribalt Uus .
Pange vormile nimi ja valige õige vaatajaskond. Sihtrühma valik on oluline. Vormihõive skripti välja-atribuudi> vastendus on saadaval ainult valitud sihtrühma (olemi) atribuutide jaoks.
Lisage kõik väljad, mida soovite vastendada, olemasolevate vormiväljadega. See samm ei ole kohustuslik; Väljaatribuudi > vastendamine on määratletud vormihõivekoodis. Õigete väljade lisamine vormi loob kohatäited atribuutide vastendamiseks vormihõiveskriptis, muutes vastendamise määratluse lihtsamaks.
Lisage nende moodustamiseks ja konfigureerimiseks nõusolekuelemendid, nagu Eesmärk või Teema. Vaadake lisateavet selle kohta, kuidas hallata meilisõnumite ja tekstsõnumite nõusolekut Customer Insights - Journeys.
Oluline
Nõusoleku määratlus tuleb teha väljaredaktor. Nõusolekusätetes tehtud muudatusi, mis on tehtud vormi hõivamise koodilõigend, ignoreeritakse.
Lisa nupp Esita . Esitamisnupp on vajalik vormi edukaks valideerimiseks enne avaldamist.
Avaldage vorm, kasutades ekraani paremas ülanurgas olevat nuppu Avalda . Kopeerige vormihõive koodilõigend ja manustage koodilõigend olemasoleva vormiga oma veebilehele või andke koodilõigend arendajale üle. Koodilõigend sisaldab juba linki dokumentatsioonile, mis juhendab teie arendajat.
Oluline
Domeeninimi, kus teie olemasolevat vormi majutatakse, peab olema välise vormimajutuse jaoks lubatud, vastasel juhul vormi esitamist ei jäädvustata. Lisateave domeeni autentimise kohta.
Hõiveskripti manustamine lehele ja vastendamise definitsioon
Eelmises etapis kopeeritud koodilõigend on mall ja seda tuleb kohandada vastavalt konkreetsele kasutusjuhtumile. Peate asendama kõik loodud mallis märgitud ***Please fill***
elemendid ja kohandama loogikat vastavalt oma stsenaariumile.
Teie olemasolev vormiedastus saadetakse aadressile Customer Insights - Journeys JavaScripti API abil, mis on failis FormCapture.bundle.js
määratletud ja lõigend kaasatud.
Vormi hõivamise seadistus koosneb järgmistest sammudest.
- Hankige lehel viide vormielemendile.
- Määratlege väljade vormiväljade vastendus (olemi atribuudid) Customer Insights - Journeys.
- Määratlege nõusoleku mudelite nõusolekuväljade vastendamine Customer Insights - Journeys.
- Saatke vormi edastus adressaadile Customer Insights - Journeys.
1. Hankige viide vormielemendile
Vormielemendile viitamiseks võite kasutada waitForElement
abistajafunktsiooni. See töötab ka dünaamiliselt renderdatud elementidega ja tagastab lubaduse, mis lahendatakse, kui antud valijaga element on lehelt leitud. Valijate kohta leiate teavet CSS sellest dokumentatsioonist.
Näide:
<form id="form1">
...
</form>
<script>
d365mktformcapture.waitForElement("#form1").then(form => {
...
});
</script>
2. Määratlege vormiväljade vastendamine
Vormi väljad tuleb vastendada vastavate väljadega (olemi atribuudid). Customer Insights - Journeys Vastendus on määratletud funktsioonis d365mktformcapture.serializeForm(form, mappings)
.
Näide:
<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>
Parameeter form
tuuakse eelmises jaotises kirjeldatud funktsiooni abil waitForElement
. Parameeter mappings
on massiiv, millel on järgmise struktuuri elemendid:
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
}
Funktsioon on sünkroonne ja tagastab serialiseerimise tulemuse järgmise lepinguga:
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
}
Veenduge, et käsitlete kõiki tõrkeid FormFieldMappingResults
, mille on tagastanud. Kasuliku koormuse Customer Insights - Journeys saate luua helistades serializedForm.SerializedForm.build()
.
2.1 OptionSet-väljade vastendamine
Väljade puhul OptionSet
peate määratlema vastenduse vastava väärtusega, mis tuleks salvestada Customer Insights - Journeys. Saate vastendada olemasoleva vormi OptionSet väljade väärtused atribuudis. DataverseFieldValue
Näide:
<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 Otsinguväljade vastendamine
Otsinguvälja vaikeväärtuse seadmine
Staatilisi (vaike)väärtusi saate kasutada otsinguväljade vastendamisloogikas. Peate määratlema välja nime ja väärtuse, mis tuleks salvestada Customer Insights - Journeys.
Näide:
<form id="form1">
...
</form>
<script>
...
const mappings = [
{
DataverseFieldName: "currency",
DataverseFieldValue: "{\"Id\":\"ffffd6c1-b32d-ee11-bdf3-6045bded6105\",\"LogicalName\":\"transactioncurrency\"}"
},
];
...
</script>
Otsinguvälja väärtuse vastendamine vormiväljaga
Samuti saate vastendada otsinguvälja väärtuse vastava väärtusega olemasoleval vormiväljal.
Näide:
<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 Mitme valikuga väljaväärtuste vastendamine
Väljade puhul multi-select
peate määratlema vastenduse vastava väärtusega, mis tuleks salvestada Customer Insights - Journeys. Saate vastendada olemasolevad vormid, valides atribuudis DataverseFieldValue
mitu väljaväärtust.
Näide:
<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. Määratlege nõusolekuvälja vastendamine
Nõusolekuväljad tuleb konfigureerida väljaredaktor in Customer Insights - Journeys. Ja DataverseFieldName
DataverseFieldValue
vastendused genereeritakse vastavalt automaatselt.
Näide:
<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. Saatke vormi esildis aadressile Customer Insights - Journeys
Kui olete saanud vormi viite, määratlenud vastendused ja järjestanud vormi, saate sündmusele submit
lisada sündmuse kuulaja ja saata selle funktsiooni abil d365mktformcapture.submitForm(captureConfig, payload)
. See kõne tagastab lubaduse ja vigu saab loogikas catch
käsitleda.
Oluline
Kui teil on kohandatud valideerimine või Captcha kontroll, veenduge, et edastate vormi ainult Customer Insights - Journeys eduka valideerimise korral (nt kontrollige isDefaultPrevented
sündmust submit
või helistage submitForm
selgesõnaliselt alles pärast valideerimise läbimist)
Näide:
<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>
Tõrkeotsing
Esitamise lõpp-punktile helistamine nurjub CORS-i tõrkega
Päritoluülene ressursside ühiskasutus (CORS) võib põhjustada vormi esitamise nurjumise. Luba oma domeen välise vormi majutamiseks. Lisateave domeeni autentimise kohta.
Nõusoleku väärtusi ei värskendata õigesti
Veenduge, et olete väljaredaktor seadistanud vastavad nõusolekuväljad (vt teemat Vormihõive loomine rakenduses Customer Insights - Journeys väljaredaktor) ja et olete kasutanud avaldamisprotsessis loodud õigeid vastendusi.