Бөлісу құралы:


Customer Insights - Journeys жүйесінде пішіндерді түсіру

Пішін түсіру Customer Insights - Journeys пішін өңдегіші арқылы жасалмаған бар пішіндерден жіберулерді алу үшін пайдаланылады. Егер бұрыннан бар пішін Dynamics 365 жүйесінен басқа жүйелерге де жіберулерді жіберсе немесе бар пішінде Customer Insights - Journeys пішін өңдегіші ішінде оңай қайта жасалмайтын күрделі логика болса, пішінді түсіру ұсынылады. Бар пішінді Customer Insights - Journeys пішін өңдегіші арқылы қайта жасауға болатын болса, пішінді түсіру мүмкіндігін пайдалану ұсынылмайды.

Пішінді түсіру жіберулерді өңдеу үшін стандартты пішіндер сияқты бірдей API пайдаланады. Дәл сол қауіпсіздік ескертуі пішінді түсіру үшін қолданылады.

Маңызды

Пішінді түсіру үшін әзірлеушінің көмегі қажет. Customer Insights - Journeys пішін өңдегіші арқылы пішін жасау және оны бар бетке ендіру әрқашан оңай.

Маңызды

Пішінді түсіру DynamicsMKT_Forms шешімінің 1.1.35355 немесе одан жоғары нұсқасын қажет етеді. Сынақ данасын дайындаған кезде соңғы нұсқа әрқашан автоматты түрде бола бермейді. Пішінді түсіру әрекетін бастамас бұрын Customer Insights - Journeys жаңартқаныңызға көз жеткізіңіз.

Пішін түсіруді қосыңыз

Пішінді түсіру мүмкіндігі әдепкі бойынша өшірілген. Пішіндерді түсіру қосқышты Параметрлер>Мүмкіндік қосқыштары>Пішіндер арқылы қосуға болады..

Функция қосқыштарында пішінді түсіруді қосыңыз.

Пішін түсіру қалай жұмыс істейді

Пішін түсіру стандартты Customer Insights - Journeys пішінді жіберуді имитациялайды. Қолданыстағы пішінді жіберулерді Customer Insights - Journeys-ге байланыстыру үшін, Customer Insights - Journeys пішін өңдегіші арқылы пішін жасау керек. Бұл пішінді жариялағаннан кейін, сіз бар пішінді қамтитын веб-бетке ендірілген болуы керек пішінді түсіру сценарийін ала аласыз. Сценарий жетекші немесе контакт нысанының атрибуттары бойынша бар пішін өрістерін салыстыру анықтамасын қамтиды. Барлық жіберулер мен талдауларды Customer Insights - Journeys ішінен көре аласыз. Сондай-ақ, бұл пішінді Жіберілген маркетинг пішіні триггерімен саяхатты ұйымдастыруда пайдалануға болады. Бұл пішінді жіберу сонымен қатар Байланыс нүктесінің келісімін және қатысты мақсаттарды немесе тақырыптарды жасай немесе жаңарта алады.

Пішіндерді түсіру бойынша қадамдық нұсқаулық

Customer Insights - Journeys пішін өңдегіші ішінде пішін суретін жасау

  1. Жаңа түсіру пішінінің сценарийін жасау үшін Customer Insights - Journeys>Арналар>Пішіндер тармағына өтіп, Жаңа таңдаңыз. пәрмен жолағында.

  2. Пішінді атаңыз және дұрыс аудиторияны таңдаңыз. Мақсатты аудиторияны таңдау маңызды. Пішін түсіру сценарийінің өрісі->атрибут салыстыруы таңдалған мақсатты аудиторияның (нысан) атрибуттары үшін ғана қолжетімді.

  3. Бар пішін өрістеріне салыстырғыңыз келетін барлық өрістерді қосыңыз. Бұл қадам міндетті емес; өріс > атрибуты салыстыру пішінді түсіру кодында анықталған. Пішінге дұрыс өрістерді қосу пішінді түсіру сценарийінде төлсипатты салыстыру үшін толтырғыштарды жасайды, бұл салыстыру анықтамасын жеңілдетеді.

  4. Оларды қалыптастыру және конфигурациялау үшін Мақсат немесе Тақырып сияқты келісім элементтерін қосыңыз. электрондық пошта мен мәтіндік хабарларға келісімді басқару жолы туралы толығырақ ақпаратты Customer Insights - Journeys бөлімінен қараңыз.

    Маңызды

    Келісімді анықтау пішін өңдегіші ішінде орындалуы керек. код үзіндісі пішімінде жасалған келісім параметрлеріне жасалған өзгертулер еленбейді.

  5. a Жіберу түймесін қосыңыз. Жіберу түймесі жарияламас бұрын пішінді сәтті тексеру үшін қажет.

  6. Экранның жоғарғы оң жақ бұрышындағы Жариялау түймесін пайдаланып пішінді жариялаңыз. код үзіндісі пішінін көшіріп алыңыз да, код үзіндісі файлын бар пішіні бар веб-бетіңізге ендіріңіз немесе код үзіндісі файлын әзірлеушіге беріңіз. код үзіндісі әзірлеушіні бағыттау үшін құжаттамаға сілтемені қамтиды.

    Пішінге келісім элементін қосыңыз.

    Маңызды

    Қолданыстағы пішініңіз орналастырылған домен атауы сыртқы пішін хостингі үшін қосулы болуы керек, әйтпесе пішінді жіберу жазылмайды. домен аутентификациясы туралы қосымша ақпарат алыңыз.

Түсіру сценарийін бетке ендіру және салыстыру анықтамасы

Алдыңғы қадамда көшірілген код үзіндісі үлгі болып табылады және оны нақты пайдалану жағдайына реттеу керек. Жасалған үлгіде ***Please fill*** деп белгіленген барлық элементтерді ауыстырып, сценарийге логиканы реттеу керек.

Қолданыстағы пішінді жіберу Customer Insights - Journeys файлда анықталған FormCapture.bundle.js және үзінді ішіне енгізілген JavaScript API арқылы жіберіледі.

Пішінді түсіруді орнату мына қадамдардан тұрады:

  1. Беттегі пішін элементіне сілтеме алыңыз.
  2. Өрістерде (нысан атрибуттары) пішін өрістерін салыстыруды анықтаңыз Customer Insights - Journeys.
  3. Келісім үлгісіндегі келісім өрістерінің салыстыруын анықтаңыз Customer Insights - Journeys.
  4. Пішінді жіберу мекенжайына жіберіңіз Customer Insights - Journeys.

1. Пішін элементіне сілтеме алыңыз

Пішін элементіне сілтеме алу үшін waitForElement анықтама функциясын пайдалануға болады. Ол сонымен қатар динамикалық түрде көрсетілген элементтермен жұмыс істейді және берілген селекторы бар элемент бетте табылғаннан кейін шешілетін уәдені қайтарады. CSS таңдаушыларға сілтеме алу үшін мына құжаттаманы қараңыз.

Мысал:

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

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

2. Пішін өрістерін салыстыруды анықтаңыз

Пішіндегі өрістерді Customer Insights - Journeys ішіндегі сәйкес өрістерге (нысан атрибуттары) салыстыру қажет. Салыстыру d365mktformcapture.serializeForm(form, mappings) функциясында анықталған.

Мысал:

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

Параметр form алдыңғы бөлімде сипатталған waitForElement функция арқылы шығарылады. Параметр mappings бұл келесі құрылымның элементтері бар массив:

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
}

Функция синхронды және келесі келісім-шартпен сериялау нәтижесін қайтарады:

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
}

FormFieldMappingResultsқайтарған барлық қателерді өңдейтініңізге көз жеткізіңіз. Пайдалы жүктемені Customer Insights - Journeys ге serializedForm.SerializedForm.build() қоңырау шалу арқылы жасауға болады.

2.1 OptionSet өрістерін салыстыру

OptionSet өрістері үшін Customer Insights - Journeys ішінде сақталуы тиіс сәйкес мәнге салыстыруды анықтау керек. Бар пішінді OptionSet өрістерінің мәндерін DataverseFieldValue сипатта салыстыруға болады.

Мысал:

<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 Іздеу өрістерін салыстыру
Іздеу өрісі үшін әдепкі мәнді орнатыңыз

Іздеу өрістері үшін салыстыру логикасында статикалық (әдепкі) мәндерді пайдалануға болады. Өрістің атын және Customer Insights - Journeys ішінде сақталуы керек мәнді анықтау керек.

Мысал:

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

<script>
  ...
  const mappings = [
    {
        DataverseFieldName: "currency",
        DataverseFieldValue: "{\"Id\":\"ffffd6c1-b32d-ee11-bdf3-6045bded6105\",\"LogicalName\":\"transactioncurrency\"}"
    },
  ];
  ...
</script>
Іздеу өрісінің мәнін пішіндегі өріске салыстырыңыз

Сондай-ақ іздеу өрісінің мәнін бұрыннан бар пішін өрісіндегі сәйкес мәнге салыстыруға болады.

Мысал:

<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 Көп таңдаулы өріс мәндерін салыстыру

multi-select өрістері үшін Customer Insights - Journeys ішінде сақталуы тиіс сәйкес мәнге салыстыруды анықтау керек. Бар пішіннің көп таңдаулы өріс мәндерін DataverseFieldValue сипатта салыстыруға болады.

Мысал:

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

Келісім өрістерін Customer Insights - Journeys ішіндегі пішін өңдегіші ішінде конфигурациялау қажет. DataverseFieldName және DataverseFieldValue салыстырулар сәйкесінше автоматты түрде жасалады.

Мысал:

<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. Пішінді жіберу мекенжайына жіберіңіз Customer Insights - Journeys

Пішінге сілтеме алғаннан кейін, салыстыруларды анықтап, пішінді сериялайсыз, оқиға тыңдаушысын submit оқиғаға қосып, оны d365mktformcapture.submitForm(captureConfig, payload) функциясы арқылы жіберуге болады. Бұл қоңырау уәдені қайтарады және қателерді catch логикасында өңдеуге болады.

Маңызды

Егер сізде реттелетін тексеру немесе Captcha тексеруі бар болса, пішінді тексеру сәтті өткен жағдайда ғана жібергеніңізге көз жеткізіңіз (мысалы, Customer Insights - Journeys тексеру isDefaultPrevented оқиға немесе нақты шақыру submit тек тексеруден өткеннен кейін) submitForm

Мысал:

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

Ақаулықтарды жою

Жіберудің соңғы нүктесіне қоңырау CORS қатесімен орындалмайды

Түпнұсқалар арасындағы ресурстарды ортақ пайдалану (CORS) пішінді жіберудің сәтсіз аяқталуына әкелуі мүмкін. Сыртқы пішінді хостинг үшін доменді қосыңыз. домен аутентификациясы туралы қосымша ақпарат алыңыз.

пішін өңдегіші ( Пішін түсіруін Customer Insights - Journeys пішін өңдегіші бөлімінде жасау бөлімін қараңыз) сәйкес келісім өрістерін орнатқаныңызға көз жеткізіңіз. жариялау процесінде жасалған дұрыс салыстыруларды пайдаландым.