Wapi.js SDK implements Node.js native EventEmitter class to implment event handling.

Listen to Events:

You can listen to events using the on method available on the client class. Here is an example of how you can listen to incoming messages and reply/react to them:

// assuming you have already initiated the client,


whatsappClient.on('Ready', async () => {
        console.log("Client is ready to receive messages.")
})

whatsappClient.on('Error', async error => {
        console.errpr("An error occured.", error)
})

whatsappClient.on('TextMessage', async message => {
        await message.reply({
            message: new TextMessage({
                text: 'This is a reply.'
            })
        })
})

whatsappClient.on('AudioMessage', async message => {
        await message.reply({
            message: new TextMessage({
                text: 'This is a reply.'
            })
        })
})

// and so on for other message types...

Exposed Events

The SDK supports the following events out of the box to make it easy to handle both the user and system events:

There is no messaging or system event handling differences in the SDK, here they are just bifurcated for the educational puposes.

Messaging Events:

Important

Each of the events mentioned above has a couple of utility methods available like reply, react etc. which can be used to reply or react to the incoming messages.

System Events