Models and fields
The technical names of every model the social modules define, and their main fields.
Technical names for developers, for odoo-bin shell, and for reading the database.
Social Media Marketing Automation#
social.media.account#
Inherits mail.thread. Ordered by name.
| Field | Type | Notes |
|---|---|---|
name | Char | Required, tracked. |
platform | Selection | facebook, instagram, twitter, linkedin, tiktok, youtube. Required, tracked. |
handle, profile_url | Char | |
access_token | Char | Manager group only. |
company_id | Many2one res.company | Default: current company. |
active, image, color | ||
test_mode | Boolean | Default True, tracked. |
state | Selection | disconnected (default), connected. Tracked. |
post_ids, post_count | One2many, Integer | |
char_limit | Integer | Computed from platform, stored. |
Methods: action_connect, action_disconnect, action_view_posts, and _api_publish(post), the override point for real integrations.
social.media.post#
Inherits mail.thread, mail.activity.mixin. Ordered by scheduled_date desc, id desc.
| Field | Type | Notes |
|---|---|---|
name | Char | Computed from the first 60 characters of message; editable, stored. |
message | Text | Required, tracked. |
image, link_url | Image, Char | |
template_id, hashtag_ids | Many2one, Many2many | |
account_id | Many2one | Required, tracked, cascade delete. |
platform, char_limit, company_id | related to the account | platform and company_id stored. |
campaign_id | Many2one | Tracked. |
scheduled_date, published_date | Datetime | published_date read-only. |
state | Selection | draft, pending_approval, scheduled, published, failed, cancelled. |
approved_by, approved_date, error_message | Read-only. | |
ai_brief, ai_content_status | Text, Selection | Status: none, requested, received, failed. |
message_length, over_char_limit | computed | |
like_count, comment_count, share_count, click_count | Integer | Read-only. |
engagement_count | Integer | Sum of the four, stored. |
Methods: action_submit_for_approval, action_schedule, action_approve, action_reject, action_reset_to_draft, action_cancel, action_publish_now, action_request_ai_content, action_duplicate, action_insert_hashtags, _publish, and _cron_publish_scheduled_posts.
Others#
| Model | Purpose | Main fields |
|---|---|---|
social.media.campaign | Groups posts. Inherits mail.thread, mail.activity.mixin. | name, user_id, company_id, date_start, date_end, description (Html), state (draft, in_progress, done, cancelled), post_ids, post_count, active |
social.media.template | Reusable content. | name, message, image, link_url, hashtag_ids, platform, active |
social.media.hashtag | The library. Unique name. | name, color, active |
social.media.post.compose | Transient wizard. | template_id, message, image, link_url, hashtag_ids, campaign_id, account_ids, scheduled_date |
social.media.automation.settings | Transient screen over two system parameters. | n8n_ai_webhook_url, api_key |
AI Growth Workforce#
social.ai.agent#
Inherits mail.thread. Ordered by sequence, name. Unique (name, company_id).
| Field | Type | Notes |
|---|---|---|
name, sequence, active | ||
role_title | Char | Shown as Role. |
category | Selection | sales, marketing, content, support, brand, intelligence. |
description, responsibilities | Text | One responsibility per line. |
state | Selection | draft (Not Deployed), active, paused. |
autonomy_level | Selection | approval_required, assisted, semi_autonomous, autonomous. Default approval_required. |
autonomy_explanation | Char | Computed. |
max_posts_per_day | Integer | Default 10. 0 means no limit. Must not be negative. |
requires_approval_with_image | Boolean | Default True. |
odoo_model_access, channel_ids_text | Char | Declarative only. |
activity_log_ids | One2many | |
post_count, pending_approval_count, activity_count | Integer | Computed. |
company_id | Many2one | Required. |
Methods: action_activate, action_pause, action_view_activity, check_can_publish(post) returning (allowed, reason), _autonomy_at_least(level), _posts_published_today().
social.ai.activity#
Ordered newest first. Created only through log(), which uses elevated rights.
| Field | Notes |
|---|---|
agent_id | Set null on delete. |
agent_name_snapshot | Name at write time. |
post_id | Set null on delete. |
action_type | generate, submit, approve, reject, schedule, publish, publish_blocked, publish_failed, autonomy_change, sync. |
trigger, data_used, action_taken, result | Text describing the event. |
decision | Required. |
approval_status | not_required (default), auto_approved, human_approved, blocked. |
autonomy_at_time | Autonomy when written. |
user_id, odoo_record, company_id |
telegram.post (extended)#
The base module's post model. This module adds:
| Field | Notes |
|---|---|
state | Adds pending_approval, approved, scheduled, failed, cancelled around the base module's draft and posted. |
ai_agent_id | Handled By, tracked. |
is_ai_generated | Not copied on duplicate. |
approved_by_id, approved_date, rejection_reason, failure_reason | Read-only, not copied. |
ai_activity_ids, ai_activity_count | |
char_count, char_limit_warning | Computed. Limits: X 280, Instagram 2,200, Telegram 4,096. |
ai_brief, ai_content_status, ai_error_message | Status: none, requested, received, failed. |
Methods: action_submit_for_approval, action_approve, action_reject, action_schedule, action_reset_to_draft, action_cancel, action_publish_post (wraps the base publisher behind _check_publish_allowed), action_request_ai_content, apply_ai_content, _cron_publish_scheduled_posts, _cron_update_views_safe.
SmartERP Documentation#
| Model | Purpose |
|---|---|
smarterp.doc.section | A section of the site. name, name_am, slug (unique), sequence, summary, summary_am, is_published, source, source_module, page_ids. |
smarterp.doc.page | A page. name, name_am, slug (unique per section), section_id, sequence, summary, summary_am, body_md, body_md_am, is_published, source (file, manual), source_module, source_path. |
See How it works.