Bendrinti naudojant


Užfiksuokite formas „Customer Insights - Journeys“

Formų fiksavimas naudojamas norint gauti pateikimus iš esamų formų, kurios nebuvo sukurtos naudojant Customer Insights - Journeys formų rengyklė. Formų fiksavimas rekomenduojamas, jei jūsų esama forma taip pat siunčia pateikimus į kitas sistemas nei "Dynamics 365" arba jei esamoje formoje yra sudėtingos logikos, kurios negalima lengvai sukurti formų rengyklė Customer Insights - Journeys . Jei esamą formą galima atkurti naudojant Customer Insights - Journeys formų rengyklė, nerekomenduojama naudoti formos fiksavimo priemonės.

Formų fiksavimas pateikimams apdoroti naudoja tą pačią API kaip ir standartinės formos. Tas pats saugos pranešimas taikomas ir formos fiksavimui.

Svarbu

Norint užfiksuoti formas, reikia kūrėjo pagalbos. Visada lengviau sukurti formą naudojant Customer Insights - Journeys formų rengyklė ir įdėti ją į esamą puslapį.

Svarbu

Norint užfiksuoti formą DynamicsMKT_Forms reikia sprendimo versijos 1.1.35355 arba naujesnės. Konfigūruodami bandomąjį egzempliorių, ne visada automatiškai turėsite naujausią versiją. Prieš bandydami užfiksuoti formą, įsitikinkite, kad ją atnaujinote Customer Insights - Journeys .

Formų fiksavimo įgalinimas

Formų fiksavimo funkcija yra išjungta pagal numatytuosius nustatymus. Galite įjungti formos fiksavimo perjungiklį nustatymuoseFunkcija perjungia>formas>.

Įgalinti formų fiksavimą funkcijų jungikliuose.

Kaip veikia formų fiksavimas

Formos fiksavimas imituoja standartinės Customer Insights - Journeys formos pateikimą. Norėdami susieti Customer Insights - Journeys esamos formos pateikimus, turite sukurti formą naudodami Customer Insights - Journeys formų rengyklė. Publikavę šią formą, galite gauti formos fiksavimo scenarijų, kurį reikia įdėti į tinklalapį, kuriame yra jūsų esama forma. Scenarijus apima esamų formos laukų, susietų su galimo kliento arba kontakto objekto atributais, apibrėžimą. Viduje Customer Insights - Journeys galite matyti visus pateikimus ir analizę. Šią formą taip pat galite naudoti kelionės orkestravime su pateiktu rinkodaros formos paleidikliu. Šis formos pateikimas taip pat gali sukurti arba atnaujinti kontaktinio centro sutikimą ir susijusius tikslus ar temas.

Nuoseklus vadovas, fiksuojantis formas

Formos fiksavimo Customer Insights - Journeys kūrimas formų rengyklė

  1. Norėdami sukurti naują fiksavimo formos scenarijų, eikite į Customer Insights - Journeys>Kanalų>formos ir komandų juostoje pasirinkite Naujas .

  2. Pavadinkite formą ir pasirinkite tinkamą auditoriją. Svarbu pasirinkti tikslinę auditoriją. Formos fiksavimo scenarijaus lauko atributo> susiejimas galimas tik pasirinktos tikslinės auditorijos (objekto) atributams.

  3. Įtraukite visus laukus, kuriuos norite susieti su esamais formos laukais. Šis veiksmas nėra privalomas; Lauko > atributų susiejimas apibrėžiamas formos fiksavimo kode. Į formą įtraukus tinkamus laukus, formos fiksavimo scenarijuje sugeneruojami atributų susiejimo vietos rezervavimo ženklai, todėl susiejimo aprašas tampa paprastesnis.

  4. Pridėkite sutikimo elementų, pvz., Tikslas arba Tema, kad juos suformuotumėte ir sukonfigūruotumėte. Sužinokite daugiau, kaip tvarkyti sutikimą siųsti el. laiškus ir teksto pranešimus Customer Insights - Journeys.

    Svarbu

    Sutikimo apibrėžimas turi būti pateiktas formų rengyklė. Formų fiksavimo kodo fragmentas atlikti sutikimo parametrų keitimai bus ignoruojami.

  5. Pridėti mygtuką Pateikti . Pateikimo mygtukas reikalingas norint sėkmingai patikrinti formą prieš ją paskelbiant.

  6. Publikuokite formą naudodami mygtuką Publikuoti , esantį viršutiniame dešiniajame ekrano kampe. Nukopijuokite formos fiksavimo kodo fragmentas ir įdėkite kodo fragmentas į tinklalapį naudodami esamą formą arba perduokite kodo fragmentas kūrėjui. Į kodo fragmentas jau įtraukta nuoroda į dokumentaciją, kuria galėsite vadovautis kurdami kūrėją.

    Į formą įtraukite sutikimo elementą.

    Svarbu

    Domeno vardas, kuriame laikoma jūsų esama forma, turi būti įgalintas išoriniam formų išteklių saugojimui, kitaip formos pateikimas nebus užfiksuotas. Sužinokite daugiau apie domeno autentifikavimą.

Fiksavimo scenarijaus įdėjimas į puslapį ir susiejimo apibrėžimas

Ankstesniame veiksme nukopijuotas kodo fragmentas yra šablonas ir turi būti pritaikytas konkrečiam naudojimo atvejui. Turite pakeisti visus elementus, pažymėtus kaip sugeneruotame ***Please fill*** šablone, ir pritaikyti logiką pagal savo scenarijų.

Jūsų esamas formos pateikimas siunčiamas Customer Insights - Journeys naudojant "JavaScript" API, apibrėžtą faile FormCapture.bundle.js ir įtrauktą į fragmentas.

Formos fiksavimo sąranką sudaro šie veiksmai:

  1. Gaukite nuorodą į formos elementą puslapyje.
  2. Apibrėžkite formos laukų susiejimą laukuose (objekto atributai) Customer Insights - Journeys.
  3. Apibrėžkite sutikimo laukų susiejimą sutikimo modelyje Customer Insights - Journeys.
  4. Formos pateikimą siųskite adresu Customer Insights - Journeys.

1. Gaukite nuorodą į formos elementą

Norėdami gauti nuorodą į formos elementą, galite naudoti pagalbininko waitForElement funkciją. Jis taip pat veikia su dinamiškai pateiktais elementais ir grąžina pažadą, kuris išsprendžiamas, kai puslapyje randamas elementas su nurodytu parinkikliu. Selektorių CSS nuorodą rasite šioje dokumentacijoje.

Pavyzdys:

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

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

2. Apibrėžkite formos laukų susiejimą

Formos laukai turi būti susieti su atitinkamais laukais (objekto atributais). Customer Insights - Journeys Susiejimas apibrėžiamas funkcijoje d365mktformcapture.serializeForm(form, mappings).

Pavyzdys:

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

Parametras form gaunamas pagal waitForElement ankstesniame skyriuje aprašytą funkciją. Parametras mappings yra masyvas su šios struktūros elementais:

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
}

Funkcija yra sinchroninė ir grąžina serializavimo rezultatą su šia sutartimi:

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
}

Įsitikinkite, kad tvarkote visas klaidas, kurias grąžino FormFieldMappingResults. Galite sukurti naudingąją apkrovą Customer Insights - Journeys skambindami serializedForm.SerializedForm.build().

2.1 OptionSet laukų susiejimas

Laukuose OptionSet turite apibrėžti susiejimą su atitinkama reikšme, kuri turėtų būti saugoma Customer Insights - Journeys. Galite susieti esamą formą OptionSet laukų reikšmes nuosavybėje DataverseFieldValue .

Pavyzdys:

<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 Peržvalgos laukų susiejimas
Numatytosios peržvalgos lauko reikšmės nustatymas

Peržvalgos laukų susiejimo logikoje galite naudoti statines (numatytąsias) reikšmes. Turite apibrėžti lauko pavadinimą ir vertę, kuri turėtų būti saugoma Customer Insights - Journeys.

Pavyzdys:

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

<script>
  ...
  const mappings = [
    {
        DataverseFieldName: "currency",
        DataverseFieldValue: "{\"Id\":\"ffffd6c1-b32d-ee11-bdf3-6045bded6105\",\"LogicalName\":\"transactioncurrency\"}"
    },
  ];
  ...
</script>
Peržvalgos lauko reikšmės susiejimas su formos lauku

Taip pat peržvalgos lauko reikšmę galite susieti su atitinkama esamo formos lauko reikšme.

Pavyzdys:

<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 Kelių pasirinktų laukų reikšmių susiejimas

Laukuose multi-select turite apibrėžti susiejimą su atitinkama reikšme, kuri turėtų būti saugoma Customer Insights - Journeys. Ypatybėje galite susieti esamas formos kelių pasirinkimų laukų DataverseFieldValue reikšmes.

Pavyzdys:

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

Sutikimo laukai turi būti sukonfigūruoti formų rengyklė Customer Insights - Journeys. Ir DataverseFieldNameDataverseFieldValue žemėlapiai yra atitinkamai automatiškai generuojami.

Pavyzdys:

<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. Formos pateikimą siųskite adresu Customer Insights - Journeys

Gavę nuorodą į formą, apibrėžę susiejimus ir suskirstę formą pagal svarbą, galite pridėti įvykio klausytoją prie submit įvykio ir išsiųsti jį naudodami funkciją d365mktformcapture.submitForm(captureConfig, payload) . Šis skambutis grąžina pažadą, o klaidos gali būti tvarkomos catch logikoje.

Svarbu

Jei turite pasirinktinį tikrinimą arba "Captcha" patikrinimą, įsitikinkite, kad pateikėte formą Customer Insights - Journeys tik sėkmingo patvirtinimo atveju (pvz., patikrinkite isDefaultPreventedsubmit įvykį arba aiškiai paskambinkite submitForm tik po to, kai patvirtinimas praeis)

Pavyzdys:

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

Trikčių šalinimas

Nepavyksta iškviesti į pateikimo galinį punktą ir įvyksta CORS klaida

Dėl kryžminio kilmės išteklių bendrinimo (CORS) gali nepavykti užfiksuoti formos. Įgalinkite savo domeną išoriniam formų prieglobai. Sužinokite daugiau apie domeno autentifikavimą.

Įsitikinkite, kad formų rengyklė nustatėte atitinkamus sutikimo laukus (žr. skyrių Formos fiksavimo Customer Insights - Journeys kūrimas formų rengyklė) ir publikavimo proceso metu naudojote teisingus sugeneruotus susiejimus.