# Mentioning Users

INFO

It is possible to mention also those users who are not in your contact list.

# Getting Mentioned Users

You can get all users that have been mentioned in a message by using getMentions method of a Message object. This will conveniently return a list of users (opens new window):

// client initialization...

client.on('message', async (msg) => {
    const mentions = await msg.getMentions();
    
    for (let user of mentions) {
        console.log(`${user.pushname} was mentioned`);
    }
});

This is just a helper function for parsing the mentionedIds array available on messages. This just contains a list of user IDs, so you can use this instead if you don't intend to do anything like getting their name or accessing any properties on their Contact.

# Sending Messages with Mentions

You can mention other user by using the mentions option when sending a message. Note that the message text needs to also reference mentioned users by using the format @[phone number] without a '+' at the beginning of a phone number:

// client initialization...

client.on('message', async (msg) => {
    const chat = await msg.getChat();
    let user = await msg.getContact();
    await chat.sendMessage(`Hello @${user.id.user}`, {
        mentions: [user]
    });

    // OR

    let userPhone = '123456789';
    await chat.sendMessage(`Hello @${userPhone}`, {
        mentions: [userPhone + 'c.us']
    });
});

TIP

You can mention users in a message without explicitly referencing them by using the format @[phone number] in a message body. Those users will still be mentioned but silently; they won't see their mentioned nicknames in a message body but will still be pinged.

# Example of Mentioning All Group Members

The following is a simple command that mentions all users in a group if someone sends a !everyone message:

// client initialization...

client.on('message', async (msg) => {
    if (msg.body === '!everyone') {
        const chat = await msg.getChat();
        
        let text = '';
        let mentions = [];

        for (let participant of chat.participants) {
            mentions.push(`${participant.id.user}@c.us`);
            text += `@${participant.id.user} `;
        }

        await chat.sendMessage(text, { mentions });
    }
});