Business Logic 🚀
Supercharge your template
Hooks supercharge the WCE engines. It makes it possible to hook custom, additional functionality during message processing.
All chatbot business logic is defined in the corresponding hook.
Hooks processing
Hooks that uses dotted path are processed using reflection API
Learn more about Java Reflection
Learn more about Python Reflection
These are normal functions / methods that you define. Any hook must take a single argument HookArg object.
Session manager attribute gives you access to the engine session instance.
Learn more about session manager methods here
Hook model
The Hook model contains all the necessary data you can use in your business logic
Hooks are classified as PRE & POST hooks - it can be processed before a message is sent to user or processed after a message is received from a user.
Hooks are normal functions or method, you will learn more under hooks section.
Supported hooks
POST
on-receiveprocessed after a message is received from a user. Main point of business logic after user sends a message. Use cases include: send email after user confirms order, process an order, validate user input etc.middlewareprocessed afteron-receiveis processed. Meant for any business logic processed mid-flightrouteris processed last and it by-pass theroutesdefined on the template. Its used to dynamically compute the next stage to go to (redirecting).
PRE
templateused for dynamically populating a dynamic data on the template. Use cases: dynamically populate a button template, button label or template texton-generateprocessed aftertemplatehook is processed. Meant for any business logic processed mid-flight before a message is shown to user
Let's look at each hook and how its business logic is defined.
JAWCE also supports RESTFul based hooks.
Only JAWCE supports both reflective and restful based hooks
frappe-pywce also supports script based hooks with limited support.
These have a similar approach to Frappe API Server Scripts.