Chatbot Engine extensions

From PegaWiki
Chatbot engine extensions / This is the approved revision of this page, as well as being the most recent.
Jump to navigation Jump to search

Chatbot Engine extensions

Description A list of Pega Chatbot engine extension points which you can use to customize the conversational channels behavior.
Version as of 8.6
Application Pega Platform
Capability/Industry Area Conversational Channels



Overview[edit]

Pega Chatbot Engine™ is part of Pega Platform™ and provides the capability to integrate with third-party conversational channels such as Facebook Messenger, Twitter, SMS, and WhatsApp. Implementation layers can customize some of the default behavior or add custom actions. For this purpose, the Chatbot Engine exposes multiple extension points to allow developers meet application requirements and cover specific use cases.

Supported Extension Points[edit]

The following is a list of categorized extension points that are available in Pega Platform for each conversational channel. The list contains a short description and the intended usage, as the system exposes each extension point for a specific purpose that is driven by customer requirements. Note that whether an extension is available in the system depends on the version of Pega Platform.

Interaction case processing[edit]

The following extension points are called in context of an ongoing interaction case which allows to provide additional processing logic. Note that Pega Platform manages the case lifecycle (open and save operations), so additional database operations on interaction case are prohibited.

Applies To Name Label Type Ruleset Usage Description Version
Work-Channel-Interaction pyPreProcess Interaction case pre-processing Activity Pega-ProcessEngine Use this extension to perform the processing of application and channel specific inbound messages right before the engine processes input. pyInboundMessage is the only input that the system processes - this input can be empty, for example, in Send API calls. pyInteractionCase is the primary page for this call. Any changes that the system performs on the persisted properties are reflected (persisted) in the interaction case after the interaction's processing takes place. Chatbot engine interaction case processing extension point. The system triggers this extension before the chatbot engine's main processing (the beginning of pxProcess), before NLP, and case or command processing in the context of a correctly acquired pyInteractionCase takes place. The system proceses escalation and attachments before this extension. 8.1+
Work-Channel-Interaction pyPostProcess Interaction case post-processing Activity Pega-ProcessEngine Use this extension to perform application and channel-specific outbound messages processing right after the engine generates the messages. The chatbot engine generated the pyOutboundMessage page list property as an output from case or command processing. pyInteractionCase is the primary page of this call. Any changes that the system performs on the persisted properties are reflected (persisted) in the interaction case after interaction's processing takes place. Chatbot engine interaction case processing extension point. The system triggers this extension after the chatbot engine's main processing (the end of pxProcess), after attachments, escalation, NLP, and case or command processing, in the context of a correctly acquired pyInteractionCase take place.  The system updates the history and saves the interaction case after this call. 8.1+
Work-Channel-Interaction pyBeforeInteractionSave Before Interaction case save Activity Pega-ProcessEngine Use this extension to apply additional data which requires to be persisted as part of an interaction case. pyInteractionCase is a primary page for this call. Any changes done on the persisted properties are reflected (persisted), in the interaction case right after this call. There is no need to perform an additional save because this can degrade performance.  Note that an interaction case includes properties that the system marks as non-persisted. Chatbot engine interaction case processing extension point. The system triggers this extension after the chatbot engine's main processing (the end of pxProcess), after attachments, escalation, NLP, case or command processing and postprocessing, in the context of correctly acquired pyInteractionCase takes place.  The system triggers the extension right before the system saves an interaction case to the database, the primary page reflects what data will be saved (an interaction case includes properties that are marked as non-persisted), including actual interaction's history. 8.4+
Work-Channel-Interaction pyIgnoreTimeout Ignore interaction timeout When Pega-ProcessEngine Returns 'true' if you need to ignore the case expiration time and extend its lifetime. When the extension is set to 'false', the system resolves the case after the configured expiration time has passed. The default value is 'false'. Chatbot engine interaction case processing extension point. Indicates if a case needs to be resolved when the configured expiration time has passed. The extension allows you to extend the interaction's case lifecycle beyond the specified timeout by ignoring the expiration time. 8.3+
Work-Channel-Interaction pyIsEmptyMessageAllowed Is empty message allowed When Pega-ProcessEngine Returns 'true' if the system allows empty messages in the channel and the system did not generate an internal error system message in this case. When set to 'false' the system generates an internal error system response in a case of empty messages (nothing is defined in .pyText). The Message page (from parameter) is the subject for analysis. Chatbot engine interaction case processing extension point. Indicates whether the system allows empty messages as an output of chatbot engine processing that does not generate an internal error. 8.1+
Work-Channel-Interaction pyOnInteractionClose On interaction case close Activity Pega-ProcessEngine Use this extension to apply additional logic right after the system or a user closes an interaction case, in other words, changes the case status to Resolved. If an interaction case is already closed, performing any additional operation on the case requires an additional Save. Chatbot engine interaction case processing extension point. The system triggers this extension after the system closes (resolves) an interaction case. This operation can be a result of an API call (pxCloseInteraction), close interaction action, or an expired interactions processing. The extension is triggered right after the case is Resolved. 8.1+
Work-Channel-Interaction pyPreserveWorkState Preserve other work state Activity Pega-ProcessEngine Use this extension to preserve (rename or store) any named pages related to the current work object as the chatbot engine uses Pega standard case processing and related page names such as pyWorkPage and newAssignPage. These pages need to be preserved in this activity and restored back in pyRestoreWorkState. Chatbot engine interaction case processing extension point. This extension preserves the clipboard pages that are related to the current business case object while the chatbot engine overrides the standard pages like pyWorkPage and newAssignPage. The extension is triggered before the chatbot engine main processing takes place. 8.1+
Work-Channel-Interaction pyRestoreWorkState Restore other work state Activity Pega-ProcessEngine Use this extension to restore the named pages for any current work object because the chatbot engine uses Pega standard case processing and related page names, for example, pyWorkPage and newAssignPage. These pages need to be preserved in pyPreserveWorkState and restored back for this activity. Note that the system calls this activity after the chatbot engine persists pyInteractionCase so that any data populated in this object could be lost. Chatbot engine interaction case processing extension point. This extension restores the clipboard pages related to the business case object that the system preserves in pyPreserveWorkState after the chatbot engine processing takes place. 8.1+
Work-Channel-Interaction pyPostAcquireInteraction Post acquire interaction case Activity Pega-ProcessEngine Use this extension to set some additional application specific properties on each acquired interaction. The system calls the activity in the context of the acquired interaction, if the system closes the interaction case during this acquiring call, the old interaction case is available in the pyClosedInteractionCase named page. Chatbot engine interaction case processing extension point. The system triggers this extension after an interaction case is acquired that already exists or was created. Any changes performed in the extension are available in the entire case lifecycle and persisted at the end of the lifecycle. 8.1+

Case processing[edit]

The following extension points help to provide additional logic related to automatic case processing, such as fetching current assignment (next case to process), or populate additional data on a new created case.

Applies To Name Label Type Ruleset Usage Description Version
Work-Channel-Interaction pyGetAssignmentKey Get assignment key Activity Pega-ProcessEngine Use this extension to customize how the system selects an assignment to be processed. If the system returns an empty value, the system will work in a command processing mode. If the system returns a value, the system treats the value as work to perform in the current request. The default implementation uses pyMCPWorklist report definition to select the top assignment (ordered by date) for the current operator in the default work group and selects only the work created in the current interaction. Chatbot engine case processing extension point. This extension selects an assignment key for case which the system needs to process in the current interaction and indicates if there is another assignment for the current request. 8.1+
Work-Channel-Interaction pyPostCreateCase Post create case Activity Pega-ProcessEngine Use this extension to fill out a newly created pyWorkPage with additional data, before the system processes the first assignment. Chatbot engine case processing extension point. The system triggers this extension right after the system creates a case, as a result of a create case action or a call to the API. 8.1+
Work-Channel-Interaction pyPreProcessWork Case assignment pre-processing Activity Pega-ProcessEngine Use this extension when you need additional manipulation on a case (pyWorkPage) before the case is processed by the chatbot engine. As best practice, use the Post or Pre processing in the case process itself. Use the Post or Pre processing only if you need to perform manipulation specifically for some channels. Chatbot engine case processing extension point. The system triggers this extension before the system processes the current (returned by pyGetAssignmentCase) case's assignment using the chatbot engine framework. 8.1+
Work-Channel-Interaction pyPostProcessWork Case assignment post-processing Activity Pega-ProcessEngine Use this extension when you need additional manipulation on a case (pyWorkPage) right after the system processes the case. As best practice, use the Post or Pre processing in the case process itself. Use the Pre or Post processing only when you need to perform case manipulation specifically for some channels. Chatbot engine case processing extension point. The system triggers this extension after the system processes the current (returned by pyGetAssignmentCase) case's assignment by the chatbot engine framework. 8.1+
Work-Channel-Interaction pyEntityMappingPreProcess Entity mapping pre-processing Activity Pega-ProcessEngine Use this extension to modify, verify, or filter .pxEntities list of extracted entities that are available in pyInboundMessage, if it is extracted. Chatbot engine case processing extension point. The system triggers this extension before the system applies entities to the created work item for the inbound message. 8.1+
Work-Channel-Interaction pyEntityMappingPostProcess Entity mapping post-processing Activity Pega-ProcessEngine Use this extension to modify or verify the pyWorkPage state after the system applies the values from the extracted entities. Chatbot engine case processing extension point. The system triggers this extension after the system applies entities to created work item for the inbound message. 8.1+
Assign-Worklist pyMCPWorklist Chatbot worklist Report Definition Pega-ProcessEngine Use this extension to modify the default mechanism used for obtaining the current assignment during the chatbot engine processing. The system processes the first item in the list as the current work item. The list may be empty. Chatbot engine case processing extension point. Report definition used in the default implementation of obtaining an assignment to process by the chatbot engine during processing of an interaction. The system uses the report definition in the pyGetAssignmentKey implementation. 8.1+

Escalation[edit]

The following extension points help to provide additional logic related to escalation mechanism, escalation stops bot processing and give you the ability to delegate processing to customer service representatives (CSRs).

Applies To Name Label Type Ruleset Usage Description Version
Work-Channel-Interaction pyHandleEscalationInput Escalation input handler Activity Pega-ProcessEngine Use this extension to perform specific actions for an application for each incoming input message while in an escalation mode, for example, CSR notification. Chatbot engine escalation mode extension point. The system triggers this extension for an escalation mode, for every request before the chatbot engine's main processing takes place in the context of a correctly obtained pyInteractionCase. The system processes attachments before the system triggers this extension. 8.4+
Work-Channel-Interaction pyOnEscalationStart Escalation start Activity Pega-ProcessEngine Use this extension to perform actions when you enable the escalation mode for the interaction case, for example, spinning off a new CSR session. Chatbot engine escalation mode extension point. The system triggers this extension right after the system enables the escalation mode using an API call (pxStartEscalation). 8.4+
Work-Channel-Interaction pyOnEscalationStop Escalation stop Activity Pega-ProcessEngine Use this extension to perform actions when you disable the escalation mode for the interaction case, for example, when closing a CSR session. Chatbot engine escalation mode extension point. The system triggres this extension right after the system disables the escalation mode using an API call (pxStopEscalation). 8.4+

Command authentication process[edit]

The following extension points help to provide custom logic for the command authentication process. The default "dummy" implementation authenticates against Pega Platform operators system of records.

Applies To Name Label Type Ruleset Usage Description Version
Work-Channel-Interaction pyOnAuthenticationFail On authentication fail Activity Pega-ProcessEngine Use this extension to trigger some actions when user verification fails. Note that the system calls the Authentication-Fail system response automatically. You do not need to call this system response manually. Chatbot engine authentication extension point.  The system triggers this extension at the end of an authentication process for an interaction when the provided user did not pass the custom channel specific verification process (pyVerifyUser). This process does not have anything in common with the standard Pega authentication process. The process only applies to custom channel and application specific authentication and verification mechanism. 8.1+
Work-Channel-Interaction pyOnAuthenticationSuccess On authentication success Activity Pega-ProcessEngine Use this extension to trigger actions when the user's verification succeeds. Note that the system calls the Authentication-Success system response automatically. You do not need to call the system response manually. Chatbot engine authentication extension point.  This system triggers this extension at the end of an authentication process for an interaction when the provided user successfully passes the custom channel specific verification process (pyVerifyUser) This process does not have anything in common with the standard Pega authentication process. The process only applies to custom channel and application specific authentication and verification mechanism. 8.1+
Work-Channel-Interaction pyStartAuthenticationProcess Start authentication process Activity Pega-ProcessEngine Use this extension to call some channel specific logic that initiates the authentication process. The system calls this extension when the system invokes a restricted command ("Require authentication" is set) and during an "Authenticate" action. Chatbot engine authentication extension point.  The extension starts the channel specific interaction's authentication process, when required. This process does not have anything in commonswith the standard Pega authentication process. The process only applies to the custom channel or application specific authentication an verification mechanism. 8.1+
Work-Channel-Interaction pyVerifyUser Verify user Activity Pega-ProcessEngine The system triggers this extension at the beginning of pxAuthenticate and allows you to check the authenticated user against any conditions and also generate an error if something went wrong. In this case, the system does not authenticate the user correctly and the system trigers the authentication-fail system response. You just need to set the error status in this activity. Chatbot engine authentication extension point. This extension verifies the user passed the authentication process as a result of the channel or an application specific interaction. 8.1+

Natural language processing (NLP)[edit]

The following extension point helps to provide additional logic for iNLP calls.

Applies To Name Label Type Ruleset Usage Description Version
Work-Channel-Interaction pyPopulateIAPIInputContext Populate iAPI input context Activity Pega-ProcessEngine Use this extension to set the context for a custom Pega iNLP call. The system then uses the context to search in the Interaction history (Decisioning). Chatbot engine NLP extension point. The system triggers this extension when the chatbot engine creates the Decisioning request as part of Pega NLP call. 8.3+

Send API[edit]

The following extension point helps to provide additional logic when you use the Send API, which allows the system to send messages directly to users through a specific channel.

Applies To Name Label Type Ruleset Usage Description Version
Work-Channel-Interaction pySetUserContext Set user contex Activity Pega-ProcessEngine Use this extension to setup channel specific external user id property. Chatbot engine Send API extension point that is used to setup channel specific property of an external user id. The system uses this extension in the pxInvokeChannelCommand API 8.4+

Auto-generated operator management[edit]

The following extension points help to provide custom logic for operators management. Default authentication mechanism that is available in the Chatbot Engine for every new user, automatically creates a "guest" operator that is based on a template.

Applies To Name Label Type Ruleset Usage Description Version
Data-Channel-Authentication pyPostPopulateOperator Post populate operator Activity Pega-ProcessEngine Use this extension to populate additional properties for an autogenerated operator. Chatbot engine autogenerated operators management extension point. The system triggers this extension when you create a new autogenerated operator right before a save. 8.4+
Data-Channel-Configuration pyBeforeDeleteChannelUser Before delete channel user Activity Pega-ProcessEngine Use this extension to perform additional cleaning when deleting user mapping for the channel. Chatbot engine autogenerated operators management extension point. The system triggers this extension before you remove an autogenerated channel user mapping. 8.1+
Data-Channel-Configuration pyKeepAutogeneratedOperators Keep autogenerated operators When Pega-ProcessEngine Change this when rule to true when you need to override the default behavior for deleting inactive or orphan autogenerated operators. Chatbot engine autogenerated operators management extension point. Use this when rule to indicate if you need to remove an autogenerated operator. When the rule is set to true, the system sets the pzMCPKeepAutogenerated property to true in an autogenerated operator for the Data-Admin-Operator-ID class.

The system does not remove operators for which the pzMCPKeepAutogenerated property is set to true in the following situations:

- when you exceed the inactivity threshold

- when you remove the channel

- when the system detects the operator as an orphan (no entry for Data-Channel-User, or entry to a channel that does not exist)

8.5+

Channel configuration design time[edit]

The following extension points help to customize the channel configuration user interface. You can provide new sections for the configuration user interface or manage whether particular configuration settings are visible to users.

Applies To Name Label Type Ruleset Usage Description Version
Data-Channel-Configuration pyAdditionalAuthenticationOptions Additional authentication options Section Pega-ProcessEngine Use this section to describe the channel specific parameters of the authentication process. Chatbot engine channel configuration design time extension point.

The system displays this section on the Behavior tab below "Authentication timeout."

8.1+
Data-Channel-Configuration pyChannelBehaviourExtension Channel behaviour extension Section Pega-ProcessEngine Use this section to describe the channel specific behavior parameters. Chatbot engine channel configuration design time extension point. The system displays this section on the Behavior tab, in the Option panel below "Enable authentication timeout." 8.1+
Data-Channel-Configuration pyChannelConfigurationExtension Channel configuration extension Section Pega-ProcessEngine Use this section to configure the channel specific connection properties and settings. Chatbot engine channel configuration design time extension point. The system displays this section on the Connection tab below "Template operator ID." 8.1+
Data-Channel-Configuration pyChannelResponsesExtension Channel responses extension Section Pega-ProcessEngine Use this section to describe the channel specific configuration that you specify on the Configuration tab. Chatbot engine channel configuration design time extension point. The system displays this section on the Configuration tab at the bottom of the page. 8.1+
Data-Channel-Configuration pyCustomTabContent Custom tab content Section Pega-ProcessEngine Use this section to handle custom channel configuration. Chatbot engine channel configuration design time extension point. Use this extension for custom channel configuration. 8.4+
Data-Channel-Configuration pyIsAvailable Is channel available When Pega-ProcessEngine Use this when rule to make the conversational channel available on the landing page.

To hide the predefined channels (Facebook, Alexa, and SMS), you must implement the when rule in Pega-Landing-AppView-MCP.pyIsAvailable, as this will only hide instances and lock the icon that is displayed on the landing page.

Chatbot engine channel configuration design time extension point. Setting this when rule to true makes the conversational channel available on the landing page. 8.1+
Pega-Landing-AppView-MCP pyIsAvailable Is tile available When Pega-EndUserUI Use this when rule to make the conversational channel available on landing page. Chatbot engine channel configuration design time extension point. Setting this when rule to true makes the channel available on the landing page. 8.1+
Data-Channel-Configuration pyOnLoad On load Activity Pega-ProcessEngine Use this extension for additional configuration of the channel, or, to repair legacy configurations, populate data when the configuration model was changed. Use pyOnLoadExtension. Chatbot engine channel configuration design time extension point. The system triggers this extension when you open the channel. 8.1+
Data-Channel-Configuration pyOnLoadExtension On load extension Activity Pega-ProcessEngine Use this extension for  additional configuration of channel, or, to repair legacy configurations,  populate data when the configuration model was changed. Chatbot engine channel configuration design time extension point. The system triggers this extension when you open the channel. 8.4+
Data-Channel-Configuration pyOnTileLoad On tile load Activity Pega-ProcessEngine Use this extension to load additional data when the tile is displayed. Chatbot engine channel configuration design time extension point. The system triggers this extension in order to populate the necessary information on the "Channel and interfaces" landing page for a particular channel. 8.1+
Data-Channel-Configuration pyShouldChannelBeLoaded Should channel be loaded When Pega-ProcessEngine Set this when rule to true to make the preview console available in the channel configuration. Chatbot engine channel configuration design time extension point. This when rule specifies whether the system loads the preview console in the channel configuration. 8.1+
Data-Channel-Configuration pzChannelConfigTileExpress Channel config tile Section Pega-ProcessEngine Use this section to customize the channel tile on the "Channels and interfaces" landing page Chatbot engine channel configuration design time extension point. The section specifies the default tile in the configuration of the conversational channel

on "Channels and interfaces" landing page.

The section contains a title, description, list of create case responses, and list of responses.

8.1+
Pega-Landing-AppView-MCP pyTileSubtitle Channel config tile subtitle Section Pega-EndUserUI Use this section to customize the channel tile on the "Channels and interfaces" landing page. Chatbot engine channel configuration design time extension point. The section is part of the "Channel and interfaces" tile that is displayed below the channel title and before the channel description.

Default value is empty.

8.1+

Channel configuration management[edit]

The following extension points help to provide additional logic related to channel configuration management (for example, save, copy, or delete).

Applies To Name Label Type Ruleset Usage Description Version
Data-Channel-Configuration pyCleanUpProperties Clean up properties list Activity Pega-ProcessEngine The system returns the result for this extension in the resultPage Code-Pega-List of Embed-CustomProperties where the system populates pyPropertyName. Chatbot engine channel configuration management extension point. This extension specifies a list of properties to clean up during the process of copying the channel configuration. 8.4+
Data-Channel-Configuration pyNonOverridableProperties Non overridable proeprties list Activity Pega-ProcessEngine The system returns the result for this extension in the resultPage Code-Pega-List of Embed-CustomProperties where the system populates pyPropertyName. Chatbot engine channel configuration management extension point. This extension specifies a list of properties that the system cannot override during the process of copying the channel configuration. 8.4+
Data-Channel-Configuration pyGenerateNlpAnalyzer Generate NLP analyzer When Pega-ProcessEngine Set this when rule to 'false' to indicate that the channel does not need to perform NLP text analysis. Chatbot engine channel configuration management extension point. When the when rule is set to 'true', the system creates the NLP text analyzer configuration for the new channel instance. The default value is 'true'. 8.1+
Data-Channel-Configuration pyGenerateSimpleTextAnalyzers Generate simple text analyzers Data Transform Pega-ProcessEngine The system calls the data transform when the system creates a new conversational channelas a part of pyInitializeNew.

Override this data transform when you need to create a different list of input text analyzers by default, when the system creates a new channel.

Chatbot engine channel configuration management extension point. This data trasnform generates a default list of input text analyzers.

The order you define in the list indicates the order in which the system launches the analyzers.

The following is a list of default analyzers:

1) Exact match

2) iNLP

You can disable NLP Generation by changing the pyGenerateNlpAnalyzer when rule in the Application ruleset.

8.1+
Data-Channel-Configuration pyHasChannelId Has channel Id When Pega-ProcessEngine Set the when rule to 'false' if the system does not use pyChannelId for identification of an external channel identifier. Chatbot engine channel configuration management extension point. This when rule indicates whether the channel uses an external identifier that is stored in pyChannelId. 8.1+
Data-Channel-Configuration pyInitializeNew Initialize new channel Data Transform Pega-ProcessEngine Use this data transform when you need to do additional initialization when the system creates a new channel. Chatbot engine channel configuration management extension point. The system calls the data transform when the system creates a new conversational channel.

Initialization and population of default values for channel properties.

By default, the system creates the NLP text analyzer from template and generates a list of input text analyzers (Exact match and iNLP).

You can disable the generation of NLP Text Analyzer by changing the pyGenerateNlpAnalyzer when rule in the Application ruleset.

8.1+
Data-Channel-Configuration pyIsAuthenticationSupported Is authentication supported When Pega-ProcessEngine Override this when rule for each channel type that supports authentication as a required feature for responses. Chatbot engine channel configuration management extension point. This when rule enables or disables the authentication functionality in the channel.

Default value is 'false'.

8.1+
Data-Channel-Configuration pyIsConversationalChannel Is conversational channel When Pega-ProcessEngine Override this when rule when the system creates a new channel type in the Data-Channel-Configuration class hierarchy that does not follow chatbot architecture and is not conversational type. Chatbot engine channel configuration management extension point. This when rule indicates whether the channel is conversational or not. The default value is 'true'. 8.1+
Data-Channel-Configuration pyIsTextAnalysisFeedbackAvailable Is auto NLP feedback available When Pega-ProcessEngine Override this when rule to disable data feedback for training data. Chatbot engine channel configuration management extension point. This when rule indicates whether automatic feedback is enabled or disabled. The default value is 'true' if you defined the NLP Generated text analyzer in the channel and you enabled the "Enable model training" check box, otherwise, the value is 'false'. 8.1+
Data-Channel-Configuration pyOnCopyExtension On copy extension Activity Pega-ProcessEngine Use this extension to perform a custom action on a channel copy. Chatbot engine channel configuration management extension point. The system triggers this extension after copying channel configuration in the context of a new channel. 8.4+
Data-Channel-Configuration pyOnDeleteExtension On delete extension Activity Pega-ProcessEngine Use this extension to perform a custom action on a channel delete. Chatbot engine channel configuration management extension point. The system triggers this extension before deleting the channel configuration. 8.4+
Data-Channel-Configuration pyOnNewChannelSave On new channel save Activity Pega-ProcessEngine Use this extension to add channel specific configuration for a new created channel. Chatbot engine channel configuration management extension point. The system triggers this extension when the system saves a new channel just after the generation of botId. 8.1+
Data-Channel-Configuration pyOnSaveExtension On save extension Activity Pega-ProcessEngine Use this extension to perform a custom action before a channel save. Chatbot engine channel configuration management extension point. The system triggers this extension before saving the channel configuration. 8.4+
Data-Channel-Configuration pyPostSave Post save Activity Pega-ProcessEngine Use this extension when you need to send information from the channel configuration to the integrated remote application or channel. Chatbot engine channel configuration management extension point. The system triggers this extension after the system saves the channel configuration. 8.1+
Data-Channel-Configuration pyPreCopy Pre copy Activity Pega-ProcessEngine Use this extension to specify channel specific actions before the system copies the channel. The "ChannelConfig" clipboard page references source channel properties. Chatbot engine channel configuration management extension point. The system triggers this extesnion before the system copies the channel. 8.1+
Data-Channel-Configuration pySetHelpIDs Set help Ids Data Transform Pega-ProcessEngine Use this extension to poplulate help information, as you distribute the conversational channels as components (Facebook, SMS). Chatbot engine channel configuration management extension point. The system triggers thie extension when the system creates a new conversational channel.

Populate ids of help. Default values are empty.

8.1+
Data-Channel-Configuration pyValidate Validate Activity Pega-ProcessEngine Use this extension to perform validation of additional properties that are specified for a particular channel. Chatbot engine channel configuration management extension point. The system triggers this extension before the system saves the channel configuration.

Any message that the system assigns to the channel configuration clipboard page means that the system does not save the configuration.

8.1+
Data-Channel-Configuration-BotAgent pySetBaseUrl Set base URL Data Transform Pega-ProcessEngine Use this extension to override MSG API endpoints. Chatbot engine UME channel configuration management extension point. This extension sets the base external URLs for communication with the MSG API. The system triggers this extension for every save operation. 8.4+

Legacy Webchat channel and the preview console[edit]

The following is a list of extension points that are available in the Legacy Webchat channel to help customize user experience. The same extensions are also supported in the preview console, a tool that is available on the channel configuration page that is used to preview any changes made during channel authoring process. The list contains a short description and the intended usage, as the system exposes each extension point for a specific purpose that is driven by customer requirements. Note that whether an extension is available in the system depends on the version of Pega Platform. For more information about implementing a Legacy Webchat channel, see Creating a Legacy Webchat channel.

Applies To Name Label Type Ruleset Usage Description Version
Work-Channel-Interaction pyRenderBasicSimulatorOutbound Preview console basic outbound message Section Pega-ProcessEngine Customize this section for the application or channel layer to provide a different user experience for each channel type that is based on a class context. The system passes the message using the Message named page. Chatbot engine preview console and webchat extension point. Specifies the section which renders a single basic outbound message (for example, text or menu) in the preview console or a webchat window. 8.1+
Work-Channel-Interaction pyRenderSimulatorInbound Preview console inbound message Section Pega-ProcessEngine Customize this section for the application or channel layer to provide a different user experience for each channel type that is based on a class context. The system passes the message using the Message named page. Chatbot engine preview console and Webchat extension point. Specifies the section which renders a single inbound message in the preview console or a webchat window. 8.1+
Work-Channel-Interaction pyRenderSimulatorOutbound Preview console outbound message Section Pega-ProcessEngine Customize this section for the application or channel layer to provide a different user experience for each channel type that is based on a class context. The system passes the message using the Message named page. Chatbot engine preview console and webchat extension point. Specifies the section which renders a single outbound (basic or template) message in the preview console or a webchat window. 8.1+
Work-Channel-Interaction pyRenderTemplateSimulatorOutbound Preview console template outbound message Section Pega-ProcessEngine Customize this section for the application or channel layer to provide a different user experience for each channel type that is based on a class context. The system passes the message using Message named page. Chatbot engine preview Console and webchat extension point. Specifies the section which renders a single templated outbound message in the preview console or a webchat window. 8.1+
Work-Channel-Interaction pyIsTemplateMessage Is template message When Pega-ProcessEngine Use this when rule for custom messages' implementation when you need to handle the message types that are not supported by the system, for example, the sorting of Facebook templates. The when rule omits basic validation and triggers a different rendering mechanism. You must implement this rendering mechanism within the channel specific rendering phase and in the preview console, as well - using the pyRenderTemplateSimulatorOutbound extension point. Chatbot engine preview console and webchat extension point. The when rule indicates whether the message (the Message page) in the clipboard is a non-standard template message and  needs to be treated differently in the rendering phase - the simulator and production mode. 8.1+
Work-Channel-Interaction pySetInputControl Set input control Activity Pega-ProcessEngine Use this extension to customize the control which is autoselected by the system. The controlClass is the input parameter which is a platform suggestion. To customize this input paramater, you must call pxCreateControlOfClass which controls the class of your choice - the subclass of Embed-Channel-Control-. Chatbot engine preview console and webchat extension point. Use this extension to set the type of UI control that the system needs to display for a user as an advanced input control so that the system can also handle more complex data types, for example, date or time. 8.3+
Work-Channel-Interaction pyOnResetExistingInteraction On reset existing interaction Activity Pega-ProcessEngine Use this extension to populate additional data in the current interaction. Note that the system only uses this extension in the preview console. Chatbot engine preview console extension point. The system triggers this extension when a user clicks Reset in the preview console in the context of the current interaction. 8.2.6+, 8.3.2+, 8.4+
Work-Channel-Interaction pyOnResetNewInteraction On reset new interaction Activity Pega-ProcessEngine Use this extension to populate additional data in the new created interaction. Note that the system only uses this extension in the preview console. Chatbot engine preview console extension point. The system triggers this extension when a user clicks Reset in the preview console in the context of new created interaction. 8.2.6+, 8.3.2+, 8.4+
Work-Channel-Chat pyPreserveChatWorkPage Preserve chat work state Activity Pega-ProcessEngine Use this extension to preserve (rename or store) any current work object that is related to named pages because the system engine uses the Pega standard case processing and related page names, for example, pyWorkPage and newAssignPage. You must preserve these pages in this extension and restored them back in pyRestoreChatWorkPage. Chatbot engine webchat extension point. Preserves the temporary chat case object that is related to clipboard pages while the system engine possibly overrides the standard pages, for example, pyWorkPage and newAssignPage. The system triggers this extension before the system engine main processing. 8.1+
Work-Channel-Chat pyRestoreChatWorkPage Restore chat work state Activity Pega-ProcessEngine Use this extension to restore any current work object related named pages because the system engine uses the Pega standard case processing and related page names, for example,  pyWorkPage and newAssignPage. You must preserve these pages in pyPreserveChatWorkState and restore them back by using this extension. Chatbot engine webchat extension point. Restores the temporary chat case object related clipboard pages that the system preserves in pyPreserveChatWorkPage after system processing takes place. 8.1+

Digital Messaging channel[edit]

The following is a list of extension points that are only available in the Digital Messaging channel. The list contains a short description and the intended usage, as the system exposes each extension point for a specific purpose that is driven by customer requirements. Note that whether an extension is available in the system depends on the version of Pega Platform. For more information about implementing a Digital Messaging channel, see Creating a Digital Messaging channel.

Interaction case processing[edit]

The following extension points are called in the context of ongoing Digital Messaging interaction case which allows you to provide additional processing logic. Note that Pega Platform manages case's lifecycle (open and save operations), so additional database operations on interaction case are prohibited.

Applies To Name Label Type Ruleset Usage Description Version
Work-Channel-Interaction-BotAgent pyOnPublicMessageReceive On public message receive Activity Pega-ProcessEngine Use this extension to implement the logic that specifies when the channel receives a new public post, for example, for autoreply or a CSR notification. Chatbot engine Unified Messaging interaction case processing extension point. The system triggers this extension for every incoming public message or tweet. 8.4+
Embed-BotAgent-RequestDetails pyAllowPublicPosts Allow public posts When Pega-ProcessEngine If set to 'false', the system skips public post processing. Chatbot engine Unified Messaging interaction case processing extension point. Indicates whether the system allows or ignores public posts. 8.4.4+, 8.5.3+, 8.6+
Embed-BotAgent-RequestDetails pyOnEvent On event Activity Pega-ProcessEngine Use this extension to customize the behavior for specific events. Chatbot engine Unified Messaging interaction case processing extension point.

The system triggers this extension for an event coming from messaging layer.

The events that the system currently handles are the following: customer_presence, typing_indicator, customer_end_session, cobrowse, cobrowse_ack, chat_transcript_request, customer_channel_switch

8.4.4+, 8.5.3+, 8.6+
Pega-Int-BotAgent-ManagementAPI pySetWebhookBaseURL Set Webhook base url Activity Pega-ProcessEngine Use this extension point to modify base url for webhook which is send to MSG API when consumer is registered. This may be used when some proxy, load balancers are used and PublicURL is not configured properly in platform. It is required to set pyWebhookBaseURL property value. Chatbot engine Unified Messaging channel management extension point. Called when new consumer is registered in MSG API (on channel save). It is possible to change Pega webhook base url which is by default taken from system settings (Public URL). 8.4+

Web messaging[edit]

The following extension points help to provide custom logic that is specific to the Web Messaging channel (which is part of the Digital Messaging channel). Note that these extensions are only called for the Web Messaging channel.

Applies To Name Label Type Ruleset Usage Description Version
Embed-Channel-Transcript pyOnTranscriptDownload On transcript download Activity Pega-ProcessEngine Use this extension to populate a conversation transcript file. The extension implementation must populate the following properties:

pyContentType - the content type of a transcript file

pyFileName - the file name of a  transcript

pyFileSource - the file content of a transcript as a base64 encoded string

Chatbot engine chat widget extension point that is used to populate conversation transcript file 8.4.5+, 8.5.3+, 8.6+
Embed-BotAgent-RequestDetails pyOnInteractionTransfer On interaction transfer Activity Pega-ProcessEngine Use this extension to perform custom operations on interaction cases that you need to close or merge. The available pages are the following:

InteractionToClose -  the interaction case page for a destination channel that you fill out if a user has an open interaction in the destination channel InteractionToTransfer - the interaction case page form source channel

Chatbot engine chat widget extension point. The system triggers this extension on first message form new source when the user switches the messaging channel. 8.6+