@web1on1/initresultprocessor
v2.2.2
Published
Initialise and wrap result processor logic and provide error handling in ChatShipper channel
Downloads
3
Readme
initresultprocessor_npm
Use this package as a wrapper around result processor logic of ChatShipper. It takes care of:
- Accepting the result from an assignment through the result routing.
- Wraps the business logic inside a neat function. The developer only needs to think about the business logic.
When something goes wrong it:
- Catches the error
- Report this in the back channel
- Offer a retry
- Notify an error channel (if configured)
Installation
Install this library using the following shell command:
npm install @web1on1/initresultprocessor
Example
Code example:
const ChipChat = require('chipchat');
const cs = new ChipChat({ token: process.env.CS2_API_TOKEN });
const { initResultProcessor, ProcessingError } = require('@web1on1/initresultprocessor');
initResultProcessor(cs, 'MYRESULTPROCESSOR', async (message, conversation) => {
const results = get(message, 'results', []);
const result = results.find(r => r.type === 'topic');
const contactId = get(message, 'contact');
if (!contactId) return false;
const contact = await cs.contacts.get(contactId);
conversation.say('I will take care of this result!');
});
exports.cloudfunction = pubsub(async event => cs.ingest(event));
isLead
In case form.meta.islead
is set to no
(not yes
/true
/1
) the result will be ignored.
Error channel in CS
The Error Channel in CS can be defined by setting the bot instance meta ERROR_CHANNEL
to the channel ID.
Also in can be achieved by setting the following env variable:
CS2_ERROR_CHANNEL=5e84a8a34d84280011861970
Event subscriptions
Chatshipper event subscriptions that are required:
- message.create.contact.command, for subscription on the assign that comes from the result routing
- message.create.contact.postback, for the retry mechanism