Űrlapok rögzítése a Customer Insights - Journeys szolgáltatásban
Az űrlaprögzítés olyan meglévő űrlapokból származó beküldések beolvasására szolgál, amelyeket nem a Customer Insights - Journeys űrlapszerkesztő használatával hoztak létre. Az űrlaprögzítés akkor ajánlott, ha a meglévő űrlap a Dynamics 365-től eltérő rendszerekre is küld beküldéseket, vagy ha a meglévő űrlap olyan összetett logikát tartalmaz, amelyet nem lehet könnyen újra létrehozni a Customer Insights - Journeys űrlapszerkesztő. Ha a meglévő űrlap újra létrehozható Customer Insights - Journeys a használatával űrlapszerkesztő, nem ajánlott az űrlaprögzítési funkció használata.
Az űrlaprögzítés ugyanazt az API-t használja a beküldések feldolgozásához, mint a szabványos űrlapok. Ugyanez a biztonsági figyelmeztetés vonatkozik az űrlaprögzítésre is.
Fontos
Az űrlaprögzítéshez fejlesztői segítség szükséges. Mindig egyszerűbb létrehozni egy űrlapot a Customer Insights - Journeys használatával űrlapszerkesztő és beágyazni a meglévő oldalra.
Fontos
Az űrlaprögzítéshez DynamicsMKT_Forms megoldás 1.1.35355-es vagy újabb verziójára van szükség. Próbapéldány kiépítésekor nem mindig lesz automatikusan a legújabb verzió. Győződjön meg róla, hogy frissített Customer Insights - Journeys , mielőtt megkísérli az űrlaprögzítést.
Űrlaprögzítés engedélyezése
Az űrlaprögzítési funkció alapértelmezés szerint le van tiltva. Az Űrlaprögzítés kapcsolót a Beállítások funkcióban engedélyezheti az űrlapok> között>.
Az űrlaprögzítés működése
Az űrlaprögzítés a szabványos Customer Insights - Journeys űrlap benyújtását utánozza. Ha meglévő űrlap Customer Insights - Journeys beküldéseit szeretné összekapcsolni, létre kell hoznia egy űrlapot a Customer Insights - Journeys űrlapszerkesztő használatával. Az űrlap közzététele után beszerezhet egy űrlaprögzítő parancsfájlt, amelyet be kell ágyazni a meglévő űrlapot tartalmazó weblapba. A parancsfájl tartalmazza a meglévő űrlapmezők definícióját, amelyek leképezést tartalmaznak az érdeklődő vagy kapcsolattartó entitás attribútumaira. Az összes beküldést és elemzést láthatja benne Customer Insights - Journeys. Ezt az űrlapot utazásvezénylésben is használhatja a Marketing űrlap elküldve eseményindítóval. Ez az űrlap elküldheti a kapcsolattartó pont hozzájárulását és a kapcsolódó célokat vagy témákat is létrehozhatja vagy frissítheti.
Lépésről lépésre útmutató az űrlapok rögzítéséhez
Az űrlaprögzítés létrehozása a Customer Insights - Journeys űrlapszerkesztő
Új rögzítési űrlapparancsfájl létrehozásához nyissa meg a Csatornaűrlapok Customer Insights - Journeys>>lapot , és válassza az Új lehetőséget a parancssávon.
Nevezze el az űrlapot, és válassza ki a megfelelő célközönség. Fontos a cél célközönség kiválasztása. Az űrlaprögzítési parancsfájl mezőattribútum-leképezése> csak a kiválasztott cél célközönség (entitás) attribútumaihoz érhető el.
Adja hozzá az összes mezőt, amelyet le szeretne képezni a meglévő űrlapmezőkhöz. Ez a lépés nem kötelező; A mezőattribútum-leképezés > az űrlaprögzítési kódban van definiálva. A megfelelő mezők hozzáadása az űrlaphoz helyőrzőket hoz létre az attribútumleképezéshez az űrlaprögzítő parancsfájlban, megkönnyítve a leképezés definícióját.
Adjon hozzá hozzájárulási elemeket, például a Cél vagy a témakör az űrlaphoz és konfiguráláshoz. További információ az e-mailekhez és szöveges üzenetekhez Customer Insights - Journeys való hozzájárulás kezeléséről.
Fontos
A hozzájárulás definícióját a űrlapszerkesztő kell elvégezni. Az űrlaprögzítési kód kódrészlet megadott hozzájárulási beállítások módosításait a rendszer figyelmen kívül hagyja.
Adjon hozzá egy Küldés gombot. A küldés gomb szükséges az űrlap sikeres érvényesítéséhez a közzététel előtt.
Tegye közzé az űrlapot a képernyő jobb felső sarkában található Közzététel gombbal. Másolja ki az űrlaprögzítési kódot kódrészlet, és ágyazza be a kódot kódrészlet a weboldalára a meglévő űrlappal, vagy adja át a kódot kódrészlet a fejlesztőnek. A kód már tartalmaz egy dokumentációra mutató hivatkozást kódrészlet, amely útmutatást nyújt a fejlesztőnek.
Fontos
A tartománynevet, ahol a meglévő űrlapot tárolja, engedélyezni kell a külső űrlaptároláshoz, különben az űrlapküldés nem lesz rögzítve. További információ a tartományhitelesítésről.
A rögzítési szkript beágyazása az oldalba és a leképezési definícióba
Az előző lépésben másolt kód kódrészlet sablon, és az adott használati esethez kell igazítani. Le kell cserélnie a létrehozott sablonban megjelölt ***Please fill***
összes elemet, és módosítania kell a logikát a forgatókönyvhöz.
A meglévő űrlapküldést a rendszer egy JavaScript API-n keresztül küldi el Customer Insights - Journeys , amely definiálva van a fájlban FormCapture.bundle.js
, és szerepel a kódrészlet.
Az űrlaprögzítés beállítása a következő lépésekből áll:
- Szerezze be az űrlapelemre mutató hivatkozást az oldalon.
- Határozza meg az űrlapmezők leképezését a mezőkön (entitásattribútumokon) Customer Insights - Journeys.
- Adja meg a hozzájárulási modell hozzájárulási mezőinek leképezését itt Customer Insights - Journeys.
- Küldje el az űrlap elküldését a címre Customer Insights - Journeys.
1. Hivatkozás kérése az űrlapelemre
Az űrlapelemre mutató hivatkozás lekéréséhez használhatja a waitForElement
segítő funkciót. Dinamikusan renderelt elemekkel is működik, és ígéretet ad vissza, amely akkor oldódik fel, ha az adott választóval rendelkező elem megtalálható az oldalon. A választókra vonatkozó hivatkozásért CSS tekintse meg ezt a dokumentációt.
Példa:
<form id="form1">
...
</form>
<script>
d365mktformcapture.waitForElement("#form1").then(form => {
...
});
</script>
2. Az űrlapmezők leképezésének meghatározása
Az űrlap mezőit le kell képezni a megfelelő mezőkre (entitásattribútumokra). Customer Insights - Journeys A leképezés a függvényben d365mktformcapture.serializeForm(form, mappings)
van definiálva.
Példa:
<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>
A paramétert form
az waitForElement
előző szakaszban ismertetett függvény olvassa be. A paraméter mappings
egy tömb, amely a következő struktúra elemeit tartalmazza:
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
}
A függvény szinkron, és a szerializálás eredményét adja vissza a következő szerződéssel:
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
}
Győződjön meg arról, hogy kezeli az összes hibát, amelyet a FormFieldMappingResults
. Az adattartalmat Customer Insights - Journeys hívással serializedForm.SerializedForm.build()
hozhatja létre.
2.1 OptionSet mezők leképezése
Mezők esetén OptionSet
meg kell határoznia a leképezést a megfelelő értékhez, amelyet tárolni Customer Insights - Journeys kell. A meglévő űrlap OptionSet mezőértékeit leképezheti a DataverseFieldValue
tulajdonságban.
Példa:
<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 Keresőmezők leképezése
A keresőmező alapértelmezett értékének beállítása
A keresőmezők leképezési logikájában statikus (alapértelmezett) értékeket használhat. Meg kell határoznia a mező nevét és a tárolni Customer Insights - Journeys kívánt értéket.
Példa:
<form id="form1">
...
</form>
<script>
...
const mappings = [
{
DataverseFieldName: "currency",
DataverseFieldValue: "{\"Id\":\"ffffd6c1-b32d-ee11-bdf3-6045bded6105\",\"LogicalName\":\"transactioncurrency\"}"
},
];
...
</script>
A keresőmező értékének leképezése az űrlap egy mezőjére
A keresőmező értékét a meglévő űrlapmező megfelelő értékére is leképezheti.
Példa:
<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 Többszörös kijelöléses mezőértékek leképezése
Mezők esetén multi-select
meg kell határoznia a leképezést a megfelelő értékhez, amelyet tárolni Customer Insights - Journeys kell. A tulajdonságban DataverseFieldValue
leképezheti a meglévő űrlap többszörös kijelöléses mezőértékeit.
Példa:
<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. Hozzájárulási mező leképezésének meghatározása
A hozzájárulási mezőket a űrlapszerkesztő kell konfigurálni Customer Insights - Journeys. A és DataverseFieldName
leképezések DataverseFieldValue
ennek megfelelően automatikusan jönnek létre.
Példa:
<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. Küldje el az űrlap elküldését a következő címre: Customer Insights - Journeys
Miután lekért egy hivatkozást az űrlapra, definiálta a leképezéseket, és szerializálta az űrlapot, hozzáadhat egy eseményfigyelőt az submit
eseményhez, és elküldheti azt a d365mktformcapture.submitForm(captureConfig, payload)
függvény használatával. Ez a hívás ígéretet ad vissza, és a hibák a catch
logikában kezelhetők.
Fontos
Ha egyéni érvényesítéssel vagy Captcha-ellenőrzéssel rendelkezik, győződjön meg arról, hogy az űrlapot Customer Insights - Journeys csak sikeres érvényesítés esetén küldi el (például ellenőrizze isDefaultPrevented
az submit
eseményt, vagy explicit módon csak az érvényesítés sikeres teljesítése után hívja submitForm
meg)
Példa:
<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>
Hibaelhárítás
A beküldési végpont hívása CORS-hibával meghiúsul
Az eredetközi erőforrás-megosztás (CORS) az űrlapküldés rögzítésének sikertelenségét okozhatja. Engedélyezze tartományában a külső űrlapüzemeltetést. További információ a tartományhitelesítésről.
A hozzájárulási értékek nem frissülnek megfelelően
Győződjön meg arról, hogy beállította a megfelelő hozzájárulási mezőket a űrlapszerkesztő (lásd: Az űrlaprögzítés Customer Insights - Journeys létrehozása itt űrlapszerkesztő ben), és hogy a közzétételi folyamat során létrehozott megfelelő leképezéseket használta.