Zdieľať cez


Zaznamenanie formulárov v aplikácii Customer Insights - Journeys

Zachytenie formulára sa používa na získanie odoslaných údajov z existujúcich formulárov, ktoré neboli vytvorené pomocou Customer Insights - Journeys editor formulárov. Snímanie formulára sa odporúča, ak váš existujúci formulár odosiela odoslania aj do iných systémov ako Dynamics 365 alebo ak existujúci formulár obsahuje zložitú logiku, ktorú nie je možné jednoducho znova vytvoriť v Customer Insights - Journeys editor formulárov. Ak je možné existujúci formulár znova vytvoriť pomocou Customer Insights - Journeys editor formulárov, neodporúča sa použiť funkciu zachytávania formulára.

Snímanie formulárov používa na spracovanie odoslaných údajov rovnaké rozhranie API ako štandardné formuláre. Rovnaké bezpečnostné upozornenie platí aj pre zachytávanie formulárov.

Dôležité

Zachytenie formulára vyžaduje pomoc vývojára. Vždy je jednoduchšie vytvoriť formulár pomocou Customer Insights - Journeys editor formulárov a vložiť ho na vašu existujúcu stránku.

Dôležité

Zachytenie formulára vyžaduje riešenie DynamicsMKT_Forms verzie 1.1.35355 alebo vyššej. Pri poskytovaní skúšobnej inštancie nebudete mať vždy automaticky najnovšiu verziu. Pred pokusom o zachytenie formulára sa uistite, že ste aktualizovali Customer Insights - Journeys .

Povoliť zachytávanie formulárov

Funkcia zachytávania formulárov je predvolene vypnutá. Prepínač Zachytenie formulára môžete povoliť v Nastavenia>Prepínače funkcií>Formuláre.

Povoliť zachytávanie formulárov v prepínačoch funkcií.

Ako funguje zachytávanie formulárov

Zachytenie formulára napodobňuje odoslanie štandardného Customer Insights - Journeys formulára. Ak chcete prepojiť odoslania vášho existujúceho formulára s Customer Insights - Journeys, musíte vytvoriť formulár pomocou Customer Insights - Journeys editor formulárov. Po zverejnení tohto formulára môžete získať skript na zachytávanie formulárov, ktorý je potrebné vložiť do webovej stránky, ktorá obsahuje váš existujúci formulár. Skript obsahuje definíciu existujúcich polí formulára mapujúcich atribúty potenciálneho zákazníka alebo entity kontaktu. Všetky príspevky a analýzy si môžete pozrieť v Customer Insights - Journeys. Tento formulár môžete použiť aj pri orchestrácii cesty so spúšťačom Odoslaný marketingový formulár . Tento formulár môže tiež vytvoriť alebo aktualizovať súhlas kontaktného miesta a súvisiace účely alebo témy.

Podrobný sprievodca zachytávaním formulárov

Vytvorenie zachytenia formulára v Customer Insights - Journeys editor formulárov

  1. Ak chcete vytvoriť nový skript formulára na zachytenie, prejdite na Customer Insights - Journeys>Kanály>Formuláre a vyberte Nový na paneli príkazov.

  2. Pomenujte formulár a vyberte správne publikum. Dôležitý je výber cieľového publika. Mapovanie atribútov > skriptu na zachytenie formulára je dostupné len pre atribúty vybratého cieľového publika (entity).

  3. Pridajte všetky polia, ktoré chcete priradiť k existujúcim poliam formulára. Tento krok nie je povinný; mapovanie pole > atribút je definované v kóde na zachytenie formulára. Pridaním správnych polí do formulára sa vygenerujú zástupné symboly pre mapovanie atribútov v skripte zachytávania formulára, čím sa zjednoduší definícia mapovania.

  4. Pridajte prvky súhlasu, ako je účel alebo téma, aby ste ich vytvorili a nakonfigurovali. Prečítajte si viac o tom, ako spravovať súhlas s e-mailom a textovými správami v Customer Insights - Journeys.

    Dôležité

    Definícia súhlasu musí byť vykonaná v editor formulárov. Zmeny v nastaveniach súhlasu vykonané vo formulári úryvok kódu budú ignorované.

  5. Pridajte tlačidlo Odoslať . Tlačidlo Odoslať je potrebné na úspešné overenie formulára pred publikovaním.

  6. Formulár zverejnite pomocou tlačidla Zverejniť v pravom hornom rohu obrazovky. Skopírujte zachytenie formulára úryvok kódu a vložte úryvok kódu na svoju webovú stránku s existujúcim formulárom alebo odovzdajte úryvok kódu svojmu vývojárovi. úryvok kódu už obsahuje odkaz na dokumentáciu, ktorá bude viesť vášho vývojára.

    Pridajte prvok súhlasu do formulára.

    Dôležité

    Pre názov domény, kde je hosťovaný váš existujúci formulár, musí byť povolené externé hosťovanie formulára, inak sa odoslanie formulára nezachytí. Prečítajte si viac o overovaní domény.

Vloženie zachytávacieho skriptu do vašej stránky a definície mapovania

úryvok kódu skopírovaný v predchádzajúcom kroku je šablóna a musí byť upravená pre konkrétny prípad použitia. Musíte nahradiť všetky prvky označené ako ***Please fill*** vo vygenerovanej šablóne a prispôsobiť logiku svojmu scenáru.

Vaše existujúce odoslanie formulára sa odošle na Customer Insights - Journeys pomocou rozhrania JavaScript API, ktoré je definované v súbore FormCapture.bundle.js a zahrnuté v úryvok.

Nastavenie zachytávania formulárov pozostáva z týchto krokov:

  1. Získajte odkaz na prvok formulára na stránke.
  2. Definujte mapovanie polí formulára na polia (atribúty entity) v Customer Insights - Journeys.
  3. Definujte mapovanie polí súhlasu na modeli súhlasu v Customer Insights - Journeys.
  4. Odoslanie formulára odošlite na adresu Customer Insights - Journeys.

1. Získajte odkaz na prvok formulára

Ak chcete získať odkaz na prvok formulára, môžete použiť pomocnú funkciu waitForElement . Pracuje aj s dynamicky vykresľovanými prvkami a vracia prísľub, ktorý je vyriešený, keď sa prvok s daným selektorom nájde na stránke. Odkaz na selektory CSS nájdete v tejto dokumentácii.

Príklad:

<form id="form1">
...
</form>

<script>
d365mktformcapture.waitForElement("#form1").then(form => {
  ...
});
</script>

2. Definujte mapovanie polí formulára

Polia vo formulári musia byť namapované na príslušné polia (atribúty entity) v Customer Insights - Journeys. Mapovanie je definované vo funkcii d365mktformcapture.serializeForm(form, mappings).

Príklad:

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

Parameter form sa získa pomocou funkcie waitForElement opísanej v predchádzajúcej časti. Parameter mappings je pole s prvkami nasledujúcej štruktúry:

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
}

Funkcia je synchrónna a vracia výsledok serializácie s nasledujúcou zmluvou:

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
}

Uistite sa, že ste spracovali všetky chyby vrátené FormFieldMappingResults. Môžete vytvoriť užitočné zaťaženie pre Customer Insights - Journeys zavolaním serializedForm.SerializedForm.build().

2.1 Mapovanie polí OptionSet

Pre polia OptionSet musíte definovať mapovanie na príslušnú hodnotu, ktorá má byť uložená v Customer Insights - Journeys. Vo vlastnosti DataverseFieldValue môžete namapovať existujúce hodnoty polí OptionSet formulára.

Príklad:

<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 Mapovanie vyhľadávacích polí
Nastavte predvolenú hodnotu pre vyhľadávacie pole

Pre vyhľadávacie polia môžete použiť statické (predvolené) hodnoty v logike mapovania. Musíte definovať názov poľa a hodnotu, ktorá má byť uložená v Customer Insights - Journeys.

Príklad:

<form id="form1">
  ...
</form>

<script>
  ...
  const mappings = [
    {
        DataverseFieldName: "currency",
        DataverseFieldValue: "{\"Id\":\"ffffd6c1-b32d-ee11-bdf3-6045bded6105\",\"LogicalName\":\"transactioncurrency\"}"
    },
  ];
  ...
</script>
Namapujte hodnotu vyhľadávacieho poľa na pole vo formulári

Hodnotu vyhľadávacieho poľa môžete tiež namapovať na príslušnú hodnotu vo vašom existujúcom poli formulára.

Príklad:

<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 Mapovanie hodnôt poľa s viacnásobným výberom

Pre polia multi-select musíte definovať mapovanie na príslušnú hodnotu, ktorá má byť uložená v Customer Insights - Journeys. Vo vlastnosti DataverseFieldValue môžete namapovať svoje existujúce hodnoty polí s viacnásobným výberom formulára.

Príklad:

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

Polia súhlasu je potrebné nakonfigurovať v editor formulárov v Customer Insights - Journeys. Mapovania DataverseFieldName a DataverseFieldValue sa podľa toho automaticky generujú.

Príklad:

<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. Odoslanie formulára odošlite na adresu Customer Insights - Journeys

Keď získate referenciu na formulár, definujete mapovania a serializujete formulár, môžete do udalosti submit pridať poslucháča udalosti a odoslať ho pomocou funkcie d365mktformcapture.submitForm(captureConfig, payload) . Toto volanie vráti prísľub a chyby môžu byť spracované v logike catch .

Dôležité

Ak máte zavedené vlastné overenie alebo kontrolu Captcha, uistite sa, že formulár odosielate na adresu Customer Insights - Journeys iba v prípade úspešného overenia (napríklad skontrolujte isDefaultPrevented na stránke submit udalosť alebo explicitný hovor submitForm až po overení)

Príklad:

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

Riešenie problémov

Volanie koncového bodu odoslania zlyhá s chybou CORS

Cross-Origin Resource Sharing (CORS) môže spôsobiť zlyhanie zachytávania odoslaných formulárov. Povoľte pre svoju doménu externý hosting formulárov. Prečítajte si viac o overovaní domény.

Uistite sa, že ste nastavili príslušné polia súhlasu v editor formulárov (pozri Vytvorenie záznamu formulára v Customer Insights - Journeys editor formulárov) a že 'použili správne mapovania vygenerované v procese publikovania.