Lomakkeiden sieppaus Customer Insights - Journeys ‑sovelluksessa
Lomakkeen sieppausta käytetään sellaisten olemassa olevien lomakkeiden lähettämisessä, joita ei ole luotu Customer Insights - Journeys -lomake-editorin avulla. Lomakkeen sieppausta suositellaan, jos olemassa oleva lomake tekee lähetyksiä myös muihin järjestelmiin kuin Dynamics 365:een tai jos olemassa oleva lomake sisältää monimutkaista logiikkaa, jota ei voida helposti luoda uudelleen Customer Insights - Journeys -lomake-editorissa. Jos olemassa oleva lomake voidaan luoda uudelleen Customer Insights - Journeys -lomake-editorin avulla, lomakkeen sieppausominaisuuden käyttämistä ei suositella.
Lomakkeiden sieppaus käyttää samaa ohjelmointirajapintaa kuin peruslomakkeet lähetysten käsittelyssä. Sama tietosuojailmoitus pätee lomakkeiden sieppaukseen.
Tärkeää
Lomakkeen sieppaus vaatii kehittäjän apua. On helpompaa luoda lomake Customer Insights - Journeys -lomake-editorin avulla ja upottaa lomake olemassa olevalle sivulle.
Tärkeää
Lomakkeen sieppaus vaatii DynamicsMKT_Forms-ratkaisun version 1.1.35355 tai uudemman. Kun valmistellaan kokeiluesiintymää, sinulla ei aina ole uusinta versiota automaattisesti. Varmista, että olet päivittänyt Customer Insights - Journeysin ennen kuin yrität siepata lomakkeita.
Ota lomakkeiden sieppaus käyttöön
Lomakkeiden sieppausominaisuus on oletusarvoisesti pois käytöstä. Lomakkeiden sieppaus -valitsimen voi ottaa käyttöön kohdassa Asetukset>Ominaisuusvalitsimet>Lomakkeet.
Miten lomakkeiden sieppaus toimii
Lomakkeen sieppaus jäljittelee vakiomuotoisen Customer Insights - Journeys -lomakkeen lähettämistä. Jos haluat linkittää olemassa olevan lomakkeen lähetykset Customer Insights - Journeys -sovellukseen, luo lomake käyttämällä Customer Insights - Journeys -lomake-editoria. Kun olet julkaissut lomakkeen, voit hankkia lomakkeen sieppauksen komentosarjan. Se on upotettava verkkosivulle, joka sisältää olemassa olevan lomakkeen. Komentosarja sisältää olemassa olevien lomakekenttien yhdistämismäärityksen liidi- tai yhteyshenkilöentiteetin määritteissä. Customer Insights - Journeys näyttää kaikki lähetykset ja analyysit. Tätä lomaketta voi käyttää myös siirtymän orkestroinnissa Markkinointilomake lähetetty -käynnistimen avulla. Tämä lomakkeen lähetys voi myös luoda tai päivittää yhteystiedon suostumuksen ja liittyvät merkitykset tai aiheet.
Lomakkeiden sieppaamisen vaiheittainen opas
Lomakkeen sieppauksen luominen Customer Insights - Journeys -lomake-editorissa
Luo uusi sieppauksen lomakekomentosarja siirtymällä kohtaan Customer Insights - Journeys>Kanavat>Lomakkeet ja valitsemalla komentopalkissa Uusi.
Anna lomakkeelle nimi ja valitse oikea käyttäjäryhmä. Kohderyhmän valinta on tärkeää. Lomakkeen sieppauksen komentosarjan yhdistämismääritys kenttä->määrite on käytettävissä vain valitun kohderyhmän (entiteetin) määritteille.
Lisää kaikki kentät, jotka haluat yhdistää olemassa oleviin lomakekenttiisi. Tämä vaihe ei ole pakollinen. Kenttien ja määritteiden yhdistämismääritys on määritetty lomakkeen sieppauskoodissa. Oikeiden kenttien lisääminen lomakkeeseen luo paikkamerkit määritteen yhdistämismääritystä varten lomakkeen sieppauksen komentosarjassa. Tämä helpottaa yhdistämismäärityksen määrittämistä.
Lisää lomakkeeseen suostumuksen elementit, kuten tarkoitus ja aihe, ja määritä ne. Tutustu Customer Insights - Journeysin sähköpostien ja tekstiviestien suostumuksen hallitsemiseen.
Tärkeää
Suostumuksen määritys on tehtävä lomake-editorissa. Lomakkeen sieppauksen koodikatkelman suostumuksen asetuksiin tehdyt muutokset ohitetaan.
Lisää Lähetä-painike. Lähetä-painike tarvitaan, jotta lomake voidaan tarkistaa ennen julkaisua.
Julkaise lomake käyttämällä Julkaise-painiketta näytön oikeassa yläkulmassa. Kopioi lomakkeen sieppauksen koodikatkelma ja upota se verkkosivulle olemassa olevan lomakkeen kanssa tai luovuta koodikatkelma kehittäjälle. Koodikatkelma sisältää jo linkin kehittäjälle tarkoitettuihin ohjeisiin.
Tärkeää
Toimialueen nimi, jossa olemassa olevaa lomaketta isännöidään, on otettava käyttöön ulkoista lomakkeen isännöintiä varten. Muussa tapauksessa lomakkeen lähetystä ei siepata. Lue lisää toimialueen todennuksesta.
Sieppauksen komentosarjan upottaminen sivulle ja yhdistämismäärityksen määrittelyyn
Edellisessä vaiheessa kopioitu koodikatkelma toimii mallina, ja se on mukautettava tiettyyn käyttötapaukseen. Korvaa kaikki elementit, joissa on ***Please fill***
-merkintä luodussa mallissa ja säädä logiikka skenaarion mukaan.
Olemassa oleva lomakkeen lähetys lähetetään Customer Insights - Journeys -sovellukseen käyttämällä tiedostossa FormCapture.bundle.js
määritettyä JavaScript-ohjelmointirajapintaa, joka sisältyy koodikatkelmaan.
Lomakkeen sieppauksen määritys koostuu seuraavista vaiheista:
- Hanki viite sivun lomakkeen elementtiin.
- Määritä lomakekenttien yhdistämismääritys Customer Insights - Journeysin kentissä (entiteetin määritteet).
- Määritä suostumusmallin suostumuskenttien yhdistämismääritys Customer Insights - Journeys -sovelluksessa.
- Lähetä lomakkeen lähetys Customer Insights - Journeys -sovellukseen.
1. Viiteen hakeminen lomake-elementtiin
Jos haluat saada viitteen lomake-elementtiin, voit käyttää waitForElement
-aputoimintoa. Se toimii myös dynaamisesti hahmonnettujen elementtien kanssa ja palauttaa lupauksen, joka ratkeaa, kun sivulta löytyy annetun valitsimen sisältävä elementti. Lisätietoja CSS-valitsimista on näissä ohjeissa.
Esimerkki:
<form id="form1">
...
</form>
<script>
d365mktformcapture.waitForElement("#form1").then(form => {
...
});
</script>
2. Lomakekenttien yhdistämismäärityksen määrittäminen
Lomakkeen kenttien ja Customer Insights - Journeys -sovelluksen vastaavien kenttien (entiteetin määritteiden) yhdistämismääritys on tehtävä. Yhdistämismääritys tehdään funktiossa d365mktformcapture.serializeForm(form, mappings)
.
Esimerkki:
<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>
Edellisessä osassa kuvattu funktio waitForElement
hakee parametrin form
. Parametri mappings
on elementtejä sisältävä matriisi, jonka rakenne on seuraava:
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
}
Funktio on synkroninen ja palauttaa sarjoituksen tuloksen seuraavalla sopimuksella:
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
}
Varmista, että käsittelet kaikki virheet, jotka FormFieldMappingResults
palauttaa. Voit luoda tiedot Customer Insights - Journeys -sovelluksessa kutsumalla funktiota serializedForm.SerializedForm.build()
.
2.1 OptionSet-kenttien yhdistämismääritys
OptionSet
-kenttiä varten on määritettävä yhdistämismääritys arvolle, joka tulee tallentaa Customer Insights - Journeys -sovellukseen. Voit yhdistää olemassa olevat lomakkeen OptionSet-kenttien arvot ominaisuudessa DataverseFieldValue
.
Esimerkki:
<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 Valintakenttien yhdistämismääritys
Valintakentän oletusarvon asetus
Voit käyttää staattisia arvoja (oletusarvoja) valintakenttien yhdistämismäärityksen logiikassa. Määritä kentän nimi ja arvo, jotka tallennetaan Customer Insights - Journeys -sovellukseen.
Esimerkki:
<form id="form1">
...
</form>
<script>
...
const mappings = [
{
DataverseFieldName: "currency",
DataverseFieldValue: "{\"Id\":\"ffffd6c1-b32d-ee11-bdf3-6045bded6105\",\"LogicalName\":\"transactioncurrency\"}"
},
];
...
</script>
Yhdistä hakukentän arvo lomakkeesi kenttään
Voit myös yhdistää valintakentän arvon vastaavaan arvoon olemassa olevassa lomakekentässäsi.
Esimerkki:
<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 Monivalintakenttäarvojen yhdistäminen
multi-select
-kenttiä varten on määritettävä yhdistämismääritys arvolle, joka tulee tallentaa Customer Insights - Journeys -sovellukseen. Voit yhdistää aiemmin luodun lomakkeen monivalintakentän arvot DataverseFieldValue
-ominaisuudessa.
Esimerkki:
<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. Hyväksyntäkentän yhdistämismäärityksen määrittäminen
Suostumuskentät on määritettävä Customer Insights - Journeys -sovelluksen lomake-editorissa. Yhdistämismääritykset DataverseFieldName
ja DataverseFieldValue
on luotu automaattisesti vastaavasti.
Esimerkki:
<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. Lähetetään lomakkeen lähetys Customer Insights - Journeys -sovellukseen
Kun lomakkeeseen saadaan viite, tee yhdistämismääritykset ja sarjoita lomake. Voit lisätä tapahtumien kuuntelutoiminnon submit
-tapahtumaan ja lähettää sen käyttämällä d365mktformcapture.submitForm(captureConfig, payload)
-funktiota. Tämä kutsu palauttaa lupauksen, ja virheet voidaan käsitellä catch
-logiikassa.
Tärkeää
Jos käytössä on mukautettu tarkistus tai captcha-tarkistus, varmista, että lähetät lomakkeen Customer Insights - Journeys -sovellukseen vain, jos tarkistus onnistuu (etsi esimerkiksi isDefaultPrevented
-koodi submit
-tapahtumasta tai kutsu submitForm
-funktiota vasta onnistuneen tarkistuksen suorituksen jälkeen)
Esimerkki:
<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>
Vianmääritys
Kutsu lähetyksen päätepisteen epäonnistuu CORS-virheen vuoksi
Alkuperien välinen resurssien jakaminen (CORS) voi aiheuttaa lomakkeen lähetyksen sieppauksen epäonnistumisen. Ota käyttöön toimialue ulkoisen lomakkeen isännöintiä varten. Lue lisää toimialueen todennuksesta.
Suostumusarvoja ei päivitetä oikein
Varmista, että olet määrittänyt vastaavat suostumuskentät lomake-editorissa (katso Lomakkeen sieppauksen luominen Customer Insights - Journeys -lomake-editorissa), ja että käytetään oikeita, julkaisuprosessissa luotuja yhdistämismäärityksiä.