Del via


Hente formularer i Customer Insights - Journeys

Formularregistreringen bruges til at hente indsendelser fra eksisterende formularer, der ikke er oprettet ved hjælp af Customer Insights - Journeys-formulareditoren. Formularregistrering anbefales, hvis din eksisterende formular også sender indsendelser til andre systemer end Dynamics 365, eller hvis den eksisterende formular indeholder kompleks logik, der ikke let kan genskabes i Customer Insights - Journeys-formulareditor. Hvis den eksisterende formular kan genskabes ved hjælp af Customer Insights - Journeys-formulareditor, anbefales det ikke at bruge formularregistreringsfunktionen.

Formularregistrering bruger den samme API som standardformularerne til at behandle indlæg. Samme sikkerhedsmeddelelse gælder for formularregistrering.

Vigtigt!

Formularregistrering kræver udviklerassistance. Det er altid nemmere at oprette en formular ved hjælp af Customer Insights - Journeys-formulareditor og integrere formularen på din eksisterende side.

Vigtigt

Formularopsamling kræver DynamicsMKT_Forms-løsningsversion 1.1.35355 eller højere. Når du klargør en prøveforekomst, har du ikke altid den nyeste version automatisk. Sørg for, at du har opdateret Customer Insights - Journeys inden du forsøger at hente formularer.

Aktivér formularregistrering

Formularregistreringsfunktionen er deaktiveret som standard. Du kan aktivere skift til/fra-visning for Formularregistrering i Indstillinger>Funktionsskift>Formularer.

Aktiver formularregistrering i funktionsfunktion.

Sådan fungerer formularregistrering

Formularregistrering efterligner indsendelse af en Customer Insights - Journeys-standardformular. For at knytte indsendelser af din eksisterende formular til Customer Insights - Journeys, skal du oprette en formular ved hjælp af Customer Insights - Journeys-formulareditor. Når du har publiceret denne formular, kan du få et formularregistreringsscript, som skal indlejres i den webside, der indeholder din eksisterende formular. Scriptet inkluderer definitionen af eksisterende tilknytning af formularfelter på attributter for kundeemnet eller kontaktenheden. Du kan se alle indsendelser og analyser i Customer Insights - Journeys. Du kan også bruge denne formular i orkestrering af kampagner med Marketingformular sendt som udløser. Denne formularindsendelse kan også oprette eller opdatere kontaktpunktsamtykke og relaterede formål eller emner.

Trinvis vejledning til formularregistrering

Oprette formularregistreringen i Customer Insights - Journeys-formulareditoren

  1. Opret et nyt script til formularregistrering ved at gå til Customer Insights - Journeys>Kanaler>Formularer og vælge Ny på kommandolinjen.

  2. Navngiv formularen, og vælg den rigtige målgruppe. Valget af målgruppe er vigtigt. Feltet for formularregistreringsscript->attributtilknytning er kun tilgængelig for attributter for den valgte målgruppe (enhed).

  3. Føj alle de felter, du vil knytte til eksisterende formularfelter. Dette trin er ikke obligatorisk. Tilknytning af felt > attribut defineres i formularregistreringskoden. Tilføjelse af de rigtige felter i formularen genererer pladsholdere til attributtilknytning i formularregistreringsscriptet, hvilket gør tilknytningsdefinitionen nemmere.

  4. Tilføj samtykkeelementer som Formål eller Emne for at danne og konfigurere dem. Få mere at vide om, hvordan du administrerer indhold til mails og tekstindhold i Customer Insights - Journeys.

    Vigtigt

    Samtykkedefinitionen skal ske i formulareditoren. Ændringer af samtykkeindstillinger, der er foretaget i formularregistreringens kodestykke, vil blive ignoreret.

  5. Tilføj en Send-knap. Send-knappen er påkrævet for vellykket validering af formularen før udgivelse.

  6. Udgiv formularen ved hjælp af Publicer-knappen i øverste højre hjørne af skærmen. Kopiér formularregistreringens kodestykke, og integrer kodestykket på din webside med eksisterende formular, eller overdrag kodestykket til din udvikler. Kodestykket indeholder allerede et link til dokumentation for at give vejledning til din udvikler.

    Føj samtykkeelement til formularen.

    Vigtigt

    Domænenavnet, hvor din eksisterende formular har vært, skal aktiveres for ekstern formularvært, ellers vil formularindsendelsen ikke blive registreret. Få mere at vide om -domænegodkendelse.

Integrere registreringsscriptet på din side og tilknytningsdefinition

Kodestykket, der blev kopieret i det foregående trin, fungerer som en skabelon og skal justeres til den specifikke brugssituation. Du skal erstatte alle elementer markeret som ***Please fill*** i den genererede skabelon og justere logikken til dit scenarie.

Din eksisterende formularindsendelse sendes til Customer Insights - Journeys ved hjælp af en JavaScript API, som er defineret i filen FormCapture.bundle.js og er inkluderet i kodestykket.

Opsætningen af formularregistrering består af disse trin:

  1. Hent referencen til formularelementet på siden.
  2. Definer tilknytningen af formularfelter på felter (objektattributter) i Customer Insights - Journeys.
  3. Definer tilknytning af samtykkefelter på samtykkemodellen i Customer Insights - Journeys.
  4. Send formularindsendelse til Customer Insights - Journeys.

1. Få en reference til formularelementet

For at få en reference til formularelementet kan du bruge waitForElement-hjælperfunktionen. Det fungerer også med dynamisk gengivne elementer og returnerer et løfte, der er løst, når elementet med den givne vælger er fundet på siden. Se denne dokumentation for at få en reference til CSS-vælgere.

Eksempel:

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

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

2. Definer tilknytningen af formularfelter

Felter i formularen skal tilknyttes de respektive felter (objektattributter) i Customer Insights - Journeys. Tilknytningen er defineret i funktionen d365mktformcapture.serializeForm(form, mappings).

Eksempel:

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

Parameteren form hentes af waitForElement-funktionen, der er beskrevet i forrige afsnit. Parameteren mappings er en matrix med elementer af følgende struktur:

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
}

Funktionen er synkron og returnerer serialiseringsresultatet med følgende kontrakt:

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
}

Sørg for, at du håndterer alle fejl, der returneres af FormFieldMappingResults. Du kan oprette nyttedataene til Customer Insights - Journeys ved at kalde serializedForm.SerializedForm.build().

2.1 Tilknytning af OptionSet-felter

For OptionSet-felter skal du definere tilknytningen til den respektive værdi, der skal gemmes i Customer Insights - Journeys. Du kan knytte dine eksisterende OptionSet-feltværdier i formularen i DataverseFieldValue-egenskaben.

Eksempel:

<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 Tilknytning af opslagsfelter
Angive standardværdien for opslagsfeltet

Du kan kun bruge statiske (standard) værdier i den indbyggede tilknytningslogik til opslagsfelter. Du skal definere navnet på feltet og den værdi, der skal gemmes i Customer Insights - Journeys.

Eksempel:

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

<script>
  ...
  const mappings = [
    {
        DataverseFieldName: "currency",
        DataverseFieldValue: "{\"Id\":\"ffffd6c1-b32d-ee11-bdf3-6045bded6105\",\"LogicalName\":\"transactioncurrency\"}"
    },
  ];
  ...
</script>
Kortlæg værdien af ​​opslagsfeltet til et felt i din formular

Du kan også tilknytte opslagsfeltets værdi til en respektiv værdi i dit eksisterende formularfelt.

Eksempel:

<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 Tilknytning af feltværdier med flere valg

For multi-select-felter skal du definere tilknytningen til den respektive værdi, der skal gemmes i Customer Insights - Journeys. Du kan tilknytte eksisterende feltværdier med flere valg i formularen i DataverseFieldValue-egenskaben.

Eksempel:

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

Samtykkefelter skal konfigureres i formulareditoren i Customer Insights - Journeys. DataverseFieldName- og DataverseFieldValue-tilknytningerne er autogenereret i overensstemmelse hermed.

Eksempel:

<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. Send formularindsendelse til Customer Insights - Journeys

Når du har fået en reference til formularen, definerer tilknytningerne og serialiserer formularen, kan du tilføje en hændelseslyttefunktion i submit-hændelsen og sende den ved hjælp af d365mktformcapture.submitForm(captureConfig, payload)-funktionen. Dette kald returnerer et løfte, og fejl kan håndteres i catch-logikken.

Vigtigt

Hvis du har en tilpasset validering på plads eller et Captcha-tjek, skal du sørge for, at du kun indsender formularen til Customer Insights - Journeys i tilfælde af en vellykket validering (se f.eks. efter isDefaultPrevented på hændelsen submit eller eksplicit kald af submitForm, først efter valideringen er bestået)

Eksempel:

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

Fejlfinding

Kaldet til indsendelsens slutpunkt mislykkes med en CORS-fejl

CORS (Cross-Origin Resource Sharing) kan forårsage, at formularindsendelse mislykkes. Aktivér ekstern formularvært for dit domæne. Få mere at vide om -domænegodkendelse.

Sørg for, at du har oprettet de respektive samtykkefelter i formulareditoren (se afsnittet Oprette formularregistreringen i Customer Insights - Journeys-formulareditor) og brugt de korrekte tilknytninger, der er genereret i publiceringsprocessen.