If you create any custom scenario- or messaging-related code for ATG Knowledge or ATG Self Service, you need to make sure that your code is in a module that is loaded on both the management and the agent-facing servers, and you need to make sure that your data is stored in the appropriate database tables. This includes customizations to any of the following ATG entities:
event
action
slot
targeter
message sink
message source
any other components referred to by
scenarioManager.xmlordynamoMessaging.xml
If your customizations are for external scenarios only, you still need to make sure that your ATG Knowledge agent-facing server loads the code. It is not sufficient to add the customizations to the ATG Self Service server, because the ATG Knowledge server will not notice them, and will fail to launch the external Scenario Manager, causing your customizations to be ignored. Use the scenarioManager.xml file to register such customizations, and load this file on both the ATG Knowledge and ATG Self Service servers.
ATG provides a module called personalization-minimal by default, to allow you to make these customizations.
When creating custom events and actions, the ATG Knowledge and ATG Self Service implementations are very similar; they use the same set of methods to work with scenario events. They share the atg.svc.agent.events.EventTools event logging mechanism with minor variations:
ATG Knowledge uses
AgentEventToolsImplto implement theEventToolsclass.ATG Self Service uses
ATG SelfServiceEventToolsImplto implement theEventToolsclass.

