Compartir a través de


Interacción de creación de actividades de canal personalizado

Nota

Dynamics 365 Marketing y Dynamics 365 Customer Insights son ahora Customer Insights - Journeys y Customer Insights - Data. Para obtener más información, consulte Preguntas frecuentes de Dynamics 365 Customer Insights

Los nuevos clientes de Customer Insights - Journeys solo reciben características de recorridos en tiempo real. Para obtener más información, consulte Instalación de recorridos en tiempo real predeterminada.

Importante

Este artículo solo se aplica al marketing saliente, que se eliminará del producto el 30 de junio de 2025. Para evitar interrupciones, realice la transición a recorridos en tiempo real antes de esta fecha. Más información: Información general sobre la transición

La tabla siguiente describe los parámetros de entrada requeridos por la acción msdyncrm_CustomChannelActivityCreateInteraction:

Parámetro de entrada Tipo Descripción
Id. de actividad String El valor de atributo msdyncrm_activityid de la entidad msdyncrm_customerjourneycustomchannelactivity que contiene el id. de actividad del canal personalizado.
CustomerJourney EntityReference Valor de atributo msdyncrm_customerjourney de la entidad msdyncrm_customerjourneycustomchannelactivity que contiene la referencia de entidad a recorrido del cliente que origina la llamada.
CustomerJourneyIteration EntityReference Valor de atributo msdyncrm_customerjourneyiteration de la entidad msdyncrm_customerjourneycustomchannelactivity que contiene la iteración de referencia de entidad a recorrido del cliente.
Contacto EntityReference Valor de atributo msdyncrm_contact de la entidad msdyncrm_customerjourneycustomchannelactivity que contiene la referencia de entidad a contacto procesado.
EntityType String Valor de atributo msdyncrm_entitytype de la entidad msdyncrm_customerjourneycustomchannelactivity que contiene la cadena que representa el tipo de entidad de entidad personalizada creada en el paso 1 y definida en la definición del mosaico del canal personalizado.
Id. de entidad String Valor de atributo msdyncrm_entityid del id. de registro msdyncrm_customerjourneycustomchannelactivity de la entidad personalizada creada en el paso 1 y definida por el elemenot EntityType en la definición del mosaico del canal personalizado.
ResponseType String Id. de uno de los tipos de respuesta definidos en la definición del mosaico del canal personalizado.
TriggerKeyword String (Opcional) Palabra clave para el tipo de respuesta personalizada definida en la definición del mosaico personalizado.

El siguiente XML muestra la sección de la definición de mosaico del canal personalizado. Esta sección define tres tipos de respuestas. Los primeros dos, sent y delivered, son los tipos de respuesta estándar. El tercero, keyword, permite pasar valor textual adicional a la interacción.

 <ResponseTypes> 
    <ResponseType id="sent"> 
      <Labels> 
        <!-- Labels should always have a Label for 1033 --> 
        <Label locId="1033">Sent</Label> 
        <Label locId="1031">[Sent]</Label> 
      </Labels> 
    </ResponseType> 
    <ResponseType id="delivered"> 
      <Labels> 
       <!-- Labels should always have a Label for 1033 --> 
        <Label locId="1033">Delivered</Label> 
        <Label locId="1031">[Delivered]</Label> 
      </Labels> 
    </ResponseType> 
    <ResponseType id="keyword" custom="True"> 
      <!-- there should be only one response type with attribute custom=true --> 
      <Labels> 
        <!-- Labels should always have a Label for 1033 --> 
        <Label locId="1033">Keyword match</Label> 
        <Label locId="1031">[Keyword match]</Label> 
      </Labels> 
    </ResponseType> 
  </ResponseTypes> 

Emitir interacción de creación de actividades de canal personalizado

El siguiente código muestra cómo emitir la interacción de creación de actividades de canal personalizado mediante programación. En este ejemplo, la actividad de referencia se define en el registro de actividad del canal personalizado. Emitimos la interacción con ResponseType = keyword y TriggerKeyword = interested.

    var orgServiceFactory = serviceProvider.GetService(typeof(IOrganizationServiceFactory)) as IOrganizationServiceFactory; 
    IOrganizationService orgService = orgServiceFactory.CreateOrganizationService(context.UserId);
    
    //Id of msdyncrm_customerjourneycustomchannelactivity entity 
    Guid Id = "<Record Guid>"; 

    //Get response from your service or use predefined response type for keyword based responses. 
    string responseType = "keyword"; 

    //Get keyword response from your service (Optional) 
    string triggerKeyWord = "interested"; 
    //Note: if you emmiting interaction on creation of msdyncrm_customerjourneycustomchannelactivity entity instance, there is no need to retrieve it, you can use Target  
    Entity customChannelRecord = orgService.Retrieve( "msdyncrm_customerjourneycustomchannelactivity",Id,new Microsoft.Xrm.Sdk.Query.ColumnSet(true)); 
    var emitInteractionRequest = new OrganizationRequest("msdyncrm_CustomChannelActivityCreateInteraction"); 
    emitInteractionRequest.Parameters.Add("ActivityId", customChannelRecord.GetAttributeValue<string>("msdyncrm_activityid")); 
    emitInteractionRequest.Parameters.Add("CustomerJourney", customChannelRecord.GetAttributeValue<EntityReference>("msdyncrm_customerjourney")); 
    emitInteractionRequest.Parameters.Add("CustomerJourneyIteration", customChannelRecord.GetAttributeValue<EntityReference>("msdyncrm_customerjourneyiteration")); 
    emitInteractionRequest.Parameters.Add("Contact", customChannelRecord.GetAttributeValue<EntityReference>("msdyncrm_contact")); 
    emitInteractionRequest.Parameters.Add("EntityId", customChannelRecord.GetAttributeValue<string>("msdyncrm_entityid")); 
    emitInteractionRequest.Parameters.Add("EntityType", customChannelRecord.GetAttributeValue<string>("msdyncrm_entitytype")); 
    emitInteractionRequest.Parameters.Add("ResponseType", responseType); 

    //Needed if response type has “custom” attribute set to “True” 
    emitInteractionRequest.Parameters.Add("TriggerKeyword", triggerKeyWord); 

    //Emit interaction 
    orgService.Execute(emitInteractionRequest);