Jagamisviis:


Vormide jäädvustamine rakenduses Customer Insights - Journeys

Vormihõivet kasutatakse edastuste toomiseks olemasolevatelt vormidelt, mis ei ole loodud väljaredaktor Customer Insights - Journeys abil. Vormihõive on soovitatav, kui teie olemasolev vorm saadab edastusi ka muudesse süsteemidesse peale Dynamics 365-i või kui olemasolev vorm sisaldab keerukat loogikat, mida ei saa väljaredaktor-s Customer Insights - Journeys hõlpsasti uuesti luua. Kui olemasolevat vormi saab väljaredaktor abil Customer Insights - Journeys uuesti luua, pole vormihõive funktsiooni kasutamine soovitatav.

Vormihõive kasutab edastuste töötlemiseks sama API-t kui standardvormid. Sama turvateatis kehtib ka vormihõive kohta.

Oluline

Vormihõive nõuab arendaja abi. Vormi on alati lihtsam luua väljaredaktor abil Customer Insights - Journeys ja manustada see olemasolevale lehele.

Oluline

Vormihõive nõuab DynamicsMKT_Forms lahenduse versiooni 1.1.35355 või uuemat. Proovieksemplari ettevalmistamisel ei ole teil alati automaatselt uusimat versiooni. Enne vormi hõivamise proovimist veenduge, et oleksite seda värskendanud Customer Insights - Journeys .

Vormihõive lubamine

Vormi hõivamise funktsioon on vaikimisi keelatud. Tumblernupu Vormihõives saate lubada jaotises Sätted>Funktsioon aktiveerib>vormid.

Luba vormi hõivamine funktsioonilülitites.

Kuidas vormihõive toimib?

Vormihõive jäljendab standardvormi Customer Insights - Journeys esitamist. Olemasoleva vormi Customer Insights - Journeys edastuste linkimiseks peate looma vormi, kasutades Customer Insights - Journeys väljaredaktor. Kui olete vormi avaldanud, saate hankida vormihõiveskripti, mis tuleb manustada olemasolevat vormi sisaldavale veebilehele. Skript sisaldab olemasolevate vormiväljade määratlust, mis vastendatakse müügivihje või kontaktiolemi atribuutidega. Sees näete kõiki edastusi ja analüüse Customer Insights - Journeys. Seda vormi saate kasutada ka teekonna orkestreerimisel turundusvormi edastatud päästikuga . Selle vormi esitamisega saab luua või värskendada ka kontaktpunkti nõusolekut ja sellega seotud eesmärke või teemasid.

Samm-sammuline juhend vormide hõivamiseks

Vormihõive Customer Insights - Journeys loomine väljaredaktor

  1. Uue hõivevormi skripti loomiseks minge jaotisse Customer Insights - Journeys>Kanalivormid> ja valige käsuribalt Uus .

  2. Pange vormile nimi ja valige õige vaatajaskond. Sihtrühma valik on oluline. Vormihõive skripti välja-atribuudi> vastendus on saadaval ainult valitud sihtrühma (olemi) atribuutide jaoks.

  3. Lisage kõik väljad, mida soovite vastendada, olemasolevate vormiväljadega. See samm ei ole kohustuslik; Väljaatribuudi > vastendamine on määratletud vormihõivekoodis. Õigete väljade lisamine vormi loob kohatäited atribuutide vastendamiseks vormihõiveskriptis, muutes vastendamise määratluse lihtsamaks.

  4. Lisage nende moodustamiseks ja konfigureerimiseks nõusolekuelemendid, nagu Eesmärk või Teema. Vaadake lisateavet selle kohta, kuidas hallata meilisõnumite ja tekstsõnumite nõusolekut Customer Insights - Journeys.

    Oluline

    Nõusoleku määratlus tuleb teha väljaredaktor. Nõusolekusätetes tehtud muudatusi, mis on tehtud vormi hõivamise koodilõigend, ignoreeritakse.

  5. Lisa nupp Esita . Esitamisnupp on vajalik vormi edukaks valideerimiseks enne avaldamist.

  6. Avaldage vorm, kasutades ekraani paremas ülanurgas olevat nuppu Avalda . Kopeerige vormihõive koodilõigend ja manustage koodilõigend olemasoleva vormiga oma veebilehele või andke koodilõigend arendajale üle. Koodilõigend sisaldab juba linki dokumentatsioonile, mis juhendab teie arendajat.

    Lisage vormile nõusolekuelement.

    Oluline

    Domeeninimi, kus teie olemasolevat vormi majutatakse, peab olema välise vormimajutuse jaoks lubatud, vastasel juhul vormi esitamist ei jäädvustata. Lisateave domeeni autentimise kohta.

Hõiveskripti manustamine lehele ja vastendamise definitsioon

Eelmises etapis kopeeritud koodilõigend on mall ja seda tuleb kohandada vastavalt konkreetsele kasutusjuhtumile. Peate asendama kõik loodud mallis märgitud ***Please fill*** elemendid ja kohandama loogikat vastavalt oma stsenaariumile.

Teie olemasolev vormiedastus saadetakse aadressile Customer Insights - Journeys JavaScripti API abil, mis on failis FormCapture.bundle.js määratletud ja lõigend kaasatud.

Vormi hõivamise seadistus koosneb järgmistest sammudest.

  1. Hankige lehel viide vormielemendile.
  2. Määratlege väljade vormiväljade vastendus (olemi atribuudid) Customer Insights - Journeys.
  3. Määratlege nõusoleku mudelite nõusolekuväljade vastendamine Customer Insights - Journeys.
  4. Saatke vormi edastus adressaadile Customer Insights - Journeys.

1. Hankige viide vormielemendile

Vormielemendile viitamiseks võite kasutada waitForElement abistajafunktsiooni. See töötab ka dünaamiliselt renderdatud elementidega ja tagastab lubaduse, mis lahendatakse, kui antud valijaga element on lehelt leitud. Valijate kohta leiate teavet CSS sellest dokumentatsioonist.

Näide:

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

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

2. Määratlege vormiväljade vastendamine

Vormi väljad tuleb vastendada vastavate väljadega (olemi atribuudid). Customer Insights - Journeys Vastendus on määratletud funktsioonis d365mktformcapture.serializeForm(form, mappings).

Näide:

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

Parameeter form tuuakse eelmises jaotises kirjeldatud funktsiooni abil waitForElement . Parameeter mappings on massiiv, millel on järgmise struktuuri elemendid:

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
}

Funktsioon on sünkroonne ja tagastab serialiseerimise tulemuse järgmise lepinguga:

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
}

Veenduge, et käsitlete kõiki tõrkeid FormFieldMappingResults, mille on tagastanud. Kasuliku koormuse Customer Insights - Journeys saate luua helistades serializedForm.SerializedForm.build().

2.1 OptionSet-väljade vastendamine

Väljade puhul OptionSet peate määratlema vastenduse vastava väärtusega, mis tuleks salvestada Customer Insights - Journeys. Saate vastendada olemasoleva vormi OptionSet väljade väärtused atribuudis. DataverseFieldValue

Näide:

<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 Otsinguväljade vastendamine
Otsinguvälja vaikeväärtuse seadmine

Staatilisi (vaike)väärtusi saate kasutada otsinguväljade vastendamisloogikas. Peate määratlema välja nime ja väärtuse, mis tuleks salvestada Customer Insights - Journeys.

Näide:

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

<script>
  ...
  const mappings = [
    {
        DataverseFieldName: "currency",
        DataverseFieldValue: "{\"Id\":\"ffffd6c1-b32d-ee11-bdf3-6045bded6105\",\"LogicalName\":\"transactioncurrency\"}"
    },
  ];
  ...
</script>
Otsinguvälja väärtuse vastendamine vormiväljaga

Samuti saate vastendada otsinguvälja väärtuse vastava väärtusega olemasoleval vormiväljal.

Näide:

<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 Mitme valikuga väljaväärtuste vastendamine

Väljade puhul multi-select peate määratlema vastenduse vastava väärtusega, mis tuleks salvestada Customer Insights - Journeys. Saate vastendada olemasolevad vormid, valides atribuudis DataverseFieldValue mitu väljaväärtust.

Näide:

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

Nõusolekuväljad tuleb konfigureerida väljaredaktor in Customer Insights - Journeys. Ja DataverseFieldNameDataverseFieldValue vastendused genereeritakse vastavalt automaatselt.

Näide:

<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. Saatke vormi esildis aadressile Customer Insights - Journeys

Kui olete saanud vormi viite, määratlenud vastendused ja järjestanud vormi, saate sündmusele submit lisada sündmuse kuulaja ja saata selle funktsiooni abil d365mktformcapture.submitForm(captureConfig, payload) . See kõne tagastab lubaduse ja vigu saab loogikas catch käsitleda.

Oluline

Kui teil on kohandatud valideerimine või Captcha kontroll, veenduge, et edastate vormi ainult Customer Insights - Journeys eduka valideerimise korral (nt kontrollige isDefaultPrevented sündmust submit või helistage submitForm selgesõnaliselt alles pärast valideerimise läbimist)

Näide:

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

Tõrkeotsing

Esitamise lõpp-punktile helistamine nurjub CORS-i tõrkega

Päritoluülene ressursside ühiskasutus (CORS) võib põhjustada vormi esitamise nurjumise. Luba oma domeen välise vormi majutamiseks. Lisateave domeeni autentimise kohta.

Veenduge, et olete väljaredaktor seadistanud vastavad nõusolekuväljad (vt teemat Vormihõive loomine rakenduses Customer Insights - Journeys väljaredaktor) ja et olete kasutanud avaldamisprotsessis loodud õigeid vastendusi.