All articles

Jev for WhatsApp: a text assistant with cards, buttons and forms

Run Jev as a standalone WhatsApp text assistant, then add Voxtral when you want voice notes and calls with the same conversation context.

Jev is now its own OpenWA plugin. It can answer ordinary WhatsApp text messages, choose a useful chat action, and handle the person's reply. You can run it without Voxtral or any voice features.

Start with text, then add Voxtral later if you want calls and voice notes. When both plugins are loaded in the same host, they share recent conversation context, booking details and action outcomes.

Create a text assistant

plaintext
npm init @open-wa@latest chat-assistant -- --mode easy-api --plugins jev

Choose JavaScript or TypeScript and your browser in the wizard. Copy .env.example to .env, set MISTRAL_API_KEY and JEV_API_KEY, then run npm start. Mistral generates the conversational answers; Jev uses your TypeSafe account for decisions and review. Both providers bill usage separately.

The visual project builder offers the same options and previews the generated files. For a project you already have, add @open-wa/integration-jev to the plugins array in your config. OpenWA installs a missing configured integration on demand.

Ask for the result you need

Try “Send me a booking card for a demo appointment tomorrow at 2 pm London time, lasting 30 minutes, at the OpenWA office.” Then ask for separate Confirm and Reschedule buttons, or a form with a reminder time and drink choices.

Jev decides which formats the request needs. The host validates the arguments and sends native WhatsApp messages. The reply is correlated with the original controls, so selecting Confirm records that choice and submitting a form preserves multiple selections.

A native booking card displays an appointment's details. It does not create a reservation in your booking system. Button acknowledgements record a choice in the conversation; they do not silently schedule, charge or modify an external service.

Corrections and action outcomes matter

Say “No, I said 3 pm” after a card has been sent. The assistant can preserve the date and location, send a corrected card and remove its predecessor. A normal follow-up such as “What time is it?” gets a conversational answer rather than another card.

The action engine distinguishes submitted messages, definite failures and uncertain sends. An uncertain result is reported for reconciliation instead of blindly sending the same message again. Native interactive formats require the corresponding OpenWA license capability.

Add voice when you want it

Select Jev and Voxtral together to continue the conversation through voice notes and calls. A form submitted during the person's live call is acknowledged through call audio. Outside the call, the response uses the appropriate text or voice-note adapter.

Neo shows the assistant alongside the person's normal Chat feed, with plugin pages for settings and decisions. Use hooks.chatFilter.allow to restrict which verified chat IDs plugins may operate in.

Read the Jev guide for configuration, dates, chat scope and decision evidence. The Voxtral guide covers the voice modes.