Jaa


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.

Ota lomakkeiden sieppaus käyttöön toimintovalitsimissa.

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

  1. Luo uusi sieppauksen lomakekomentosarja siirtymällä kohtaan Customer Insights - Journeys>Kanavat>Lomakkeet ja valitsemalla komentopalkissa Uusi.

  2. 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.

  3. 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ä.

  4. 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.

  5. Lisää Lähetä-painike. Lähetä-painike tarvitaan, jotta lomake voidaan tarkistaa ennen julkaisua.

  6. 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.

    Suostumuselementin lisääminen lomakkeeseen.

    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:

  1. Hanki viite sivun lomakkeen elementtiin.
  2. Määritä lomakekenttien yhdistämismääritys Customer Insights - Journeysin kentissä (entiteetin määritteet).
  3. Määritä suostumusmallin suostumuskenttien yhdistämismääritys Customer Insights - Journeys -sovelluksessa.
  4. 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>

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.

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ä.