Product events are events such as initiating a conversation, resolving a conversation, and so on, that occur in the product on which your app is deployed. You can enable product events to trigger your app, call a corresponding callback function, and execute the app logic.
To do this,
From your app’s root directory, navigate to the manifest.json file.
Subscribe to an event by configuring an event listener: Include the events attribute, specifying the product-event's name and the corresponding callback methods as follows:
manifest.json"events": { "<productEventName>": { "handler": "<eventCallbackMethod>" } }
When the event occurs, the corresponding event listener invokes the callback method and passes a standard payload to the method.
Navigate to the server.js file. In the exports block, enter the callback function definition as follows:
Sample server.jsexports = { // args is a JSON block containing the payload information // args["iparam"] will contain the installation parameter values //eventCallbackMethod is the call-back function name specified in manifest.json eventCallbackMethod: function(args) { console.log("Logging arguments from the event: " + JSON.stringify(payload)); }};
- The serverless component of the app is executed in a sandbox mode where some methods, such as setTimeout and setInterval, cannot be used.
- The default app execution timeout is 20 seconds. If the request timeout is increased to 20, 25, or 30 seconds, the app execution timeout is extended to 40 seconds.
- The payload passed to the severless component should not exceed 256 KB.
- To know all the platform restrictions and constraints, see Rate limits and constraints.
- Avoid using symbols, such as arrows, in the code when defining the event, as they may cause errors.
Payload attributes
When a product event occurs, an event-specific payload is passed to the callback method.
The payload is a JSON object with the following attributes.
- account_idstring
Identifier of the Freshchat account, auto-generated when the account is configured for a business.
- app_settingsobject
Information pertaining to the app settings as a JSON object of key-value pairs.
If your app does not use the app settings functionality, an empty JSON object is returned. - dataobject
Event-specific data, specified as a JSON object of key:value pairs.
- domainstring
Domain name for the Freshchat account.
- eventstring
Name of the product event.
- iparamsobject
Installation parameters specified as a JSON object of <parameter name>: <parameter value> pairs.
- regionstring
Region where the Freshchat account is deployed.
Possible values: US, EU, EUC, AUS, and IND.
- timestampnumber
Timestamp of when the product event occurs, specified in the epoch format.