Communication Tools
odoo_communication and odoo_email — chatter notes, activities, subscriptions, and outbound email
Communication Tools
Two tools handle all messaging and communication: odoo_communication for chatter/activities, and odoo_email for outbound email.
[!NOTE] All communication sub-actions map to the
writepolicy action. The target model must havecan_write: Truein its Model Access Rule.
odoo_communication
Category: Communication | Policy: write on target model
Handles all record-level communication via sub_action. The tool calls mail APIs on the browsed record (env[model].browse(res_id)).
Chatter Sub-Actions
sub_action | ORM Method | Description |
|---|---|---|
post_note | message_post(subtype='note') | Post an internal log note — not visible to external partners |
post_message | message_post(subtype='comment') | Post a message that notifies followers |
add_followers | message_subscribe(partner_ids) | Subscribe partners to receive notifications |
remove_followers | message_unsubscribe(partner_ids) | Unsubscribe partners |
get_messages | message_ids.read() | Read the chatter message history |
Activity Sub-Actions
sub_action | Description |
|---|---|
schedule_activity | Create a new activity on a record (type, deadline, note, assigned user) |
update_activity | Update an existing activity |
complete_activity | Mark an activity as done (with optional feedback) |
Post a Chatter Note
{
"name": "odoo_communication",
"arguments": {
"model": "sale.order",
"res_id": 42,
"sub_action": "post_note",
"body": "Order confirmed by AI assistant. Customer was contacted via phone.",
"user_prompt": "Post a note that the order was confirmed"
}
}Schedule an Activity
{
"name": "odoo_communication",
"arguments": {
"model": "sale.order",
"res_id": 42,
"sub_action": "schedule_activity",
"activity_type": "mail.activity.data.call",
"summary": "Follow up with customer",
"deadline": "2026-08-15",
"note": "Customer requested a call to discuss delivery timeline"
}
}Add Followers
{
"name": "odoo_communication",
"arguments": {
"model": "sale.order",
"res_id": 42,
"sub_action": "add_followers",
"partner_ids": [7, 12]
}
}Read Chatter History
{
"name": "odoo_communication",
"arguments": {
"model": "sale.order",
"res_id": 42,
"sub_action": "get_messages",
"limit": 20
}
}odoo_email
Category: Communication | Policy: write on mail.mail / mail.template / record model
Handles outbound email: composing freeform emails, rendering and sending mail templates, and listing available templates.
Sub-Actions
sub_action | Description |
|---|---|
send_email | Compose and send a freeform email |
send_template | Render a mail.template on a specific record and send it |
list_templates | List available email templates, optionally filtered by model |
Send a Freeform Email
{
"name": "odoo_email",
"arguments": {
"sub_action": "send_email",
"model": "sale.order",
"res_id": 42,
"email_to": ["[email protected]"],
"subject": "Your order SO/2026/001 has shipped",
"body_html": "<p>Hello,</p><p>Your order has been dispatched.</p>"
}
}[!NOTE] The
email_tolist is capped at the Max Email Recipients setting (default: 20).
Send Using a Template
{
"name": "odoo_email",
"arguments": {
"sub_action": "send_template",
"model": "sale.order",
"res_id": 42,
"template_id": 15
}
}List Available Templates
{
"name": "odoo_email",
"arguments": {
"sub_action": "list_templates",
"model": "sale.order"
}
}Returns a list of {id, name, subject, model} for all mail.template records applicable to the given model (or all templates if model is omitted).