Manually add a custom channel

Dynamics 365 Customer Insights - Journeys supports Email, Push, and SMS channels natively. To use a type of channel or an SMS provider that isn't supported natively, you can install a custom channel. If the channel isn't already provided in AppSource, you can create and install it manually.

Custom channel structure

Custom channels can be implemented as part of a Dataverse solution. The following steps and actions are required to create a custom channel:

  1. Define an extended configuration entity for the channel instance
  2. Define an extended configuration entity for the channel instance account (SMS only)
  3. Define the message parts (solution-aware component)
  4. Define the localization for the admin interface (optional)
  5. Define the message editor interface (optional)
  6. Define custom APIs
  7. Define the custom channel (solution-aware component)

Customer Insights - Journeys provides base components for creating a custom channel, including custom APIs and required entities like msdyn_channeldefinition, msdyn_channelmessagepart, msdyn_channellocale, msdyn_channelinstanceaccount and msdyn_channelinstance.

The following diagram illustrates the main components of a native Customer Insights - Journeys channel and a custom channel solution:

Diagram showing the structure of a native Customer Insights - Journeys and a custom channel solution.

The following table describes the implementation requirements for SMS and custom channels.

Component SMS Custom
Extended configuration entity for the channel instance Required Required
Extended configuration entity for the channel instance account Required Not supported
Message parts Required; should contain only a single message part with "msdyn_name" = "text" Required
Localization for admin UI Optional Optional
Message editor UI Not allowed; native Customer Insights - Journeys SMS editor is used Optional; generic Customer Insights - Journeys editor is used if not defined
Custom APIs Required Required
Channel definition Required Required

Sample solutions

The following samples include unpacked solutions for Dataverse and plugins projects. To pack and import the solutions, first build the plugin project. The project copies the assembly to the solution project. Then, pack the solution using the Solution Packager tool.

How to build the plugins project and pack the solution

  1. Build the plugins project with MSBuild or Visual Studio.

    Building the project creates a DLL in the PluginAssemblies folder inside the Dataverse solution folder.

  2. Pack the unmanaged folder with the Solution Packager using either:

    pac solution pack --zipfile C:\tmp\SampleCustomChannelSolution.zip -f src\Solutions\Samples\SampleCustomChannel\SampleCustomChannel.Solution\unmanaged --packagetype Both