***
title: Message Delivery
description: How Moveworks delivers messages via the Events API
---------------------------------------------------------------
## Delivery Experience
Messages are delivered to the user's preferred chat platform. The preferred chat platform is determined by the last place that the user sent a message to Moveworks.
If you have deployed the [Embedded Assistant](/ai-assistant/ai-assistant/web-experiences/embedded-ai-assistant/overview), messages will be delivered to both the preferred chat platform and the Embedded Assistant.
Messages do not respect business hours.
## Delivery Reliability
When you make an API call to the Events API, the following actions are taken before returning:
The API token is validated.
The HTTP payload is validated against size constraints.
Moveworks performs a syntactical validation of all emails.
Moveworks cross-checks the list of recipients to ensure they exist and are allowlisted.
Moveworks immediately **schedules** the messages for delivery.
Depending on your request volume, your message may take a few minutes to be delivered. This is because chat platforms, like Teams & Slack, [limit the number of messages that can be sent per minute](/ai-assistant/ai-assistant/capabilities/notifications-settings/product-rate-limits).
Even though messages are scheduled immediately, they are delivered asynchronously. This means the message can still fail under the following cases (non-exhaustive):
* The user's email does not exist in your organization's identity system
* The user blocked the bot
* The chat platform timed out (note: Moveworks does apply retries for failure tolerance)