Integrations & API: Build Anything on OEC.sh
OEC.sh is a developer platform. Connect your tools, automate your workflows, and let AI write the glue.
What You Can Build
A few patterns we see most often. None of these require us to ship custom features for you. The primitives are already there.
Deploy on every push
Webhook from GitHub fires an automation rule. Rule deploys the matching environment. Zero clicks.
Custom dashboards
Pull environments, deploys, and metrics through the Public API. Build a white-label admin for your agency clients.
AI-driven Odoo agents
Run an MCP server in your dev sidecar. Claude Code or Cursor reads live Odoo data, creates records, runs custom actions.
Multi-platform notifications
Native message formats for Slack, Microsoft Teams, and Discord. Pick the channel, we handle the payload shape.
Public API v1
Full read/write access via REST.
Everything you can do in the dashboard, you can do over HTTP. JWT-authenticated. Idempotency keys on every mutating call. Cursor pagination on lists. Sensible rate limits.
Endpoints
- •
/api/v1/api-keys, manage tokens - •
/api/v1/environments, list, create, destroy - •
/api/v1/webhooks, in and out - •
/api/v1/environments/{id}/deploy, trigger deploys
Built in
- •JWT bearer tokens, scoped per project
- •Idempotency-Key header, safe retries
- •Cursor pagination, never-OOM lists
- •OpenAPI / Swagger spec for every endpoint
Trigger a deploy with a single curl call:
curl -X POST https://platform.oec.sh/api/v1/environments/{env_id}/deploy \
-H "Authorization: Bearer $OECSH_API_KEY" \
-H "Idempotency-Key: deploy-$(date +%s)"Webhooks
Listen to events from Git providers and external systems.
Webhooks go both ways. Receive them from GitHub, GitLab, Bitbucket, or any HTTPS source. Send them out to Slack, Teams, Discord, or your own service. Every attempt is logged. Endpoints that fail repeatedly get auto-paused so you do not flood a broken receiver.
Reliability
- •Delivery log per attempt, status code, latency, response body
- •Auto-pause after consecutive failures
- •Manual replay from the dashboard
Security
- •HMAC-signed payloads, verify before trusting
- •SSRF validation on outbound URLs, no internal targets
- •Native Slack, Microsoft Teams, and Discord formats
Verify a webhook signature in Python:
import hmac, hashlib, os
def verify(request_body: bytes, signature_header: str) -> bool:
secret = os.environ["OECSH_WEBHOOK_SECRET"].encode()
expected = hmac.new(secret, request_body, hashlib.sha256).hexdigest()
return hmac.compare_digest(expected, signature_header)
# Flask example
# raw = request.get_data()
# sig = request.headers.get("X-OECSH-Signature", "")
# if not verify(raw, sig):
# abort(401)Automation Rules
Workflow engine for Odoo operations.
Rules are simple. A trigger fires, conditions match, actions run. Use them to keep environments in sync, ship branches automatically, or run scheduled cleanup.
Triggers
- Git push / PR merge
- Cron schedules
- Manual API call
- Other rules (chained)
Actions
- Deploy environment
- Clone prod to staging
- Promote staging
- Quick update modules
- Destroy environment
Observability
- Pipeline view per rule
- Real-time SSE events
- Run history with diffs
- Per-step retry
Templates gallery
Ten pre-built rules covering the patterns most teams need. Pick one, edit, save.
- •Auto-deploy main on push
- •Nightly clone prod to staging
- •Auto-promote tested branches
- •Tear down PR previews on merge
- •Weekly module quick-update
- •Notify Slack on failed deploy
Communication Channels
Pick the channel your team already uses. We format the payload natively for each.
Slack
Block Kit messages with deploy status, links, and inline actions.
Microsoft Teams
Adaptive Cards with full color, sections, and clickable buttons.
Discord
Rich embeds with status colors, fields, and timestamps.
Email notifications are also available on every plan.
AI Tools via MCP
Connect Claude Code, Cursor, or any MCP-compatible agent to your Odoo instance.
Model Context Protocol gives AI agents structured access to tools and data. We ship an MCP server that exposes your live Odoo. Read records, create them, run methods, automate workflows, all from the agent of your choice.
What the agent sees
- •Live model schemas and field metadata
- •Records via search_read, with filters
- •Custom methods on any model
Compatible clients
- •Claude Code (Anthropic)
- •Cursor
- •Any MCP-compatible client
Git Providers
GitHub
Public, private, and GitHub Enterprise. OAuth or PAT.
GitLab
Cloud and self-hosted. Self-hosted is a Pro feature.
Bitbucket
Cloud and Data Center. App passwords or OAuth.
Generic Git
Any provider that can POST a webhook. Gitea, Forgejo, your own server.
Plan Availability
| Plan | Price | What you get |
|---|---|---|
| Free | $0/mo | Incoming webhooks, basic notifications |
| Starter | $19/mo | Everything in Free, plus Public API access and automation rules |
| Pro | $39/mo | Everything in Starter, plus GitLab self-hosted, unlimited automation rules, audit logs (30 days) |
| Agency | $199/mo | Everything in Pro, plus cross-org Connect-As and audit logs (1 year) |
Build something this week
Free plan includes webhooks and notifications. Start there.
- No credit card
- Connect any Git provider
- MCP-ready
Frequently Asked Questions
Is the Public API free to use?
The Public API is available on Starter ($19/mo) and above. Free accounts can receive incoming webhooks and send basic notifications, but full read/write API access starts at Starter. There are no per-call fees on top of your plan, just standard rate limits to keep things fair.
What can I do with webhooks?
Two things. (1) Receive incoming webhooks from GitHub, GitLab, Bitbucket, or any Git provider to trigger automation rules. (2) Send outgoing webhooks to Slack, Microsoft Teams, Discord, or any HTTPS endpoint when events fire on your environments. Every delivery attempt is logged with response status, and endpoints that keep failing get auto-paused so you do not flood a broken receiver.
Do automation rules count toward usage limits?
Free and Starter plans have a monthly cap on automation rule executions. Pro and Agency are unlimited. Most teams run well under the cap on Starter. If you need more, upgrade to Pro at $39/mo for unlimited rules.
How do I authenticate to the Public API?
API keys are JWT-based. Generate one in your dashboard, then pass it as a Bearer token in the Authorization header. Keys are scoped to a single project and can be revoked at any time. Use the Idempotency-Key header on POST requests to safely retry without firing actions twice.
Can I build a custom Odoo dashboard with the API?
Yes. The Public API exposes environments, deploys, webhooks, API keys, logs, and metrics. Many agencies use it to build white-label admin panels for their clients, or to surface deploy status inside an internal portal. Pair it with Server-Sent Events for real-time updates without polling.
Ship Odoo Like a Real Platform
Public API, webhooks, automation rules, MCP. The primitives are there. Bring the ideas.
Related Resources
Odoo MCP Guide
Wire Claude Code or Cursor to your live Odoo instance.
Vibe Coding for Odoo
Build Odoo modules by describing what you want in plain English.
GitLab CI/CD for Odoo
Wire GitLab pipelines to OEC.sh deploys.
Bitbucket CI/CD for Odoo
Trigger deploys from Bitbucket Pipelines.
Pricing
Free, Starter, Pro, Agency. Pick the plan that fits.
OEC.sh vs Odoo.sh
Why teams pick a programmable platform over a closed one.