SmartERP Documentation An Ashewa Technology Solutions Platform

Choose a module and check the requirements

Which social module to install, what it needs, and the one thing you must supply yourself.

Pick one track#

The repository holds two social modules that overlap. Install one, not both.

social_media_marketing_automationsocial_media_ai_workforce
Depends onmail, webbase, mail, social_media_integration
PlatformsFacebook, Instagram, X, LinkedIn, TikTok, YouTubeTelegram, Facebook, Instagram, X (through the base module)
Real publishingYou implement _api_publish(), or use n8nAlready works, in the base module
AI agents and audit trailNo (AI-drafted content through n8n only)Yes
MenuSocial MarketingSocial Media → AI Workforce

If you are unsure, read The modules at a glance.

Requirements for both#

  • Odoo 17. The install scripts stop if the database is not 17.0.x.
  • PostgreSQL, as Odoo requires.
  • The Python package requests on the Odoo server. Both modules declare it, so Odoo tells you if it is missing.
  • Docker, only if you use Route A.

Extra requirements for the AI Growth Workforce#

You must supply social_media_integration#

social_media_integration is Ashewa's module and is not in the public repository, so a clone alone cannot install the AI Workforce. The installer looks for your copy in three places, in order:

  1. the folder you pass with --base-module;
  2. a folder next to the checkout;
  3. every entry of your Odoo's addons_path.

If your SmartERP already has it installed, the third place finds it. If it cannot be found at all, the installer stops rather than half-install.

It needs porting to Odoo 17 first#

social_media_integration declares version 17.0.1.0.0, but its views are written for Odoo 16. They use the attrs="{...}" attribute in 91 places, and Odoo 17 removed it. Installed as shipped, the install stops partway with:

odoo.tools.convert.ParseError: while parsing
  social_media_integration/views/telegram_post_views.xml:41
Since 17.0, the "attrs" and "states" attributes are no longer used.

Because the AI Workforce depends on it, neither module then appears in the Apps list.

The repository ships deploy/migrate_base_to_17.py, which rewrites each attrs domain as the Odoo 17 inline condition:

attrs="{'invisible': ['|', ('state','!=','posted'), ('fb_id','=',False)]}"
invisible="state != 'posted' or not fb_id"

The install scripts run it for you. To run it yourself:

python3 deploy/migrate_base_to_17.py /path/to/social_media_integration --check   # see what it would do
python3 deploy/migrate_base_to_17.py /path/to/social_media_integration           # do it

A normal run keeps every original as <name>.odoo16.bak, running it twice finds nothing to do, and if it meets anything it cannot translate with confidence it writes nothing and names the file.

Python packages the base module imports#

social_media_integration imports aiogram, beautifulsoup4, requests and python-dateutil but does not declare them, so Odoo fails at module load without them:

pip3 install aiogram beautifulsoup4 requests python-dateutil

The Docker image in Route A installs them for you.

Next#

Last updated: 2026-10-16