# Entradigm — the agent-native marketing platform > Entradigm runs end-to-end content cycles for isolated brand workspaces: > signal -> script -> slides -> voiceover -> music -> rendered video variants -> > human review -> publish or schedule to up to 11 social platforms. It is built > FOR AI agents first, with a thin human UI on top: every UI action has a > schema-typed API equivalent. This file is the canonical machine-readable entry > point for agents discovering the platform. An MCP server is on the roadmap > (2027) and is not live today — do not attempt an MCP connection. ## Capability index Canonical origin: https://app.entradigm.com. All GET surfaces below are public, CORS-enabled (Access-Control-Allow-Origin: *) and require no auth. All POST surfaces require a bearer token (single token; missing or wrong token -> 401; the gate fails closed if the token binding is absent) and are per-IP rate-limited (over-limit -> 429 with error.code RATE_LIMITED). - GET https://app.entradigm.com/.well-known/llm.txt — this file (aliases: /llms.txt, /llm.txt) - GET https://app.entradigm.com/strategist/schema — intent/response/slides/provenance schemas; apiVersion + capabilities (per-intent live flags) - GET https://app.entradigm.com/strategist/tools/schema — the agent tool registry (5 tools) - GET https://app.entradigm.com/memory/schema — the check-memory (dedup) intent schema - GET https://app.entradigm.com/library/schema — the query-library intent schema (the retired ingest-library-file shape is still emitted; that intent is live:false and its POST returns HTTP 410) - POST https://app.entradigm.com/strategist/run — trigger a content cycle (bearer-gated) - POST https://app.entradigm.com/memory/check — dedup check before generating (bearer-gated, read-only) - POST https://app.entradigm.com/library/query — query the tenant knowledge corpus (bearer-gated) ## Domain model - tenant — an isolated brand workspace. All data is row-level isolated; an agent or operator acts within exactly one tenant at a time. - profile — the tenant config: brand voice, content rules, schedule, and BYO provider routing (AI / TTS / music / posting). BYO keys are stored encrypted (Supabase Vault) and resolved server-side only at the moment of use — never in workflow payloads, logs, or state. Social-network OAuth is never held by the platform; it stays with the posting provider. - cycle — one end-to-end content run: signal -> script -> slides -> voiceover -> music -> render -> review -> publish. Triggered via POST /strategist/run, the in-app manual trigger, or auto-pilot cron. Every trigger path passes the same rate, budget, and entitlement gates. - signal — an external input (trend / event / source) that can seed a cycle. - HITL — human-in-the-loop review. Every cycle, agent-triggered included, pauses in a reviewable state (in_review / pending_review) until a human approves or parks it. Auto-approve is disabled by design; nothing publishes without human approval. ## Platform documentation <<>> ## Who it's for (start here) Three kinds of operator hire Entradigm for three different jobs. Find yours, then follow the trail. ### Individual / creator — "Keep me visible without it eating my week" _Solo founder, freelancer or creator who needs a consistent presence without an agency._ **The job you're hiring us for**: show up consistently on social without spending your week on it. If you're a solo founder, freelancer or creator, the wall isn't ideas — it's the production cost of turning them into posts, day after day. Entradigm runs that loop for you: an agent drafts and renders each cycle, you approve it from your phone in a minute. What to do next: - Read [Entradigm in one sentence](#a-what-is-overview) for the mental model - See the real numbers in [Cost of Entradigm](#a-cost-roi-cost-entradigm) — typically €15-€60/month all-in at daily cadence - In onboarding, pick the **Individual / creator** persona on step 1 — the wizard relaxes the audience question and uses creator-flavoured examples ### Small business — "Punch above our weight without a marketing hire" _A small team with no dedicated marketing department that still needs a credible, consistent brand._ **The job you're hiring us for**: a credible, consistent brand presence without hiring a marketing function. Small teams know cadence matters but can't spare 8-12 hours a week on content. Entradigm collapses that to a few minutes of review per cycle, and keeps the whole pipeline coherent — brand voice, content rules and history all live in one place, so three months in your feed still reads like one brand, not five. What to do next: - Read [Why fragmented tools produce fragmented brands](#a-why-you-need-narrative-coherence) - Weigh it against [the cost of doing nothing](#a-cost-roi-cost-nothing) - In onboarding, pick the **Small business** persona on step 1 ### Mid-market — "Scale output and keep compliance airtight" _An established company with a marketing function that needs more output without losing review rigor or compliance._ **The job you're hiring us for**: scale content output across channels while keeping review rigor and compliance airtight. If you already have a marketing function, the constraint is throughput plus governance — especially in regulated sectors (telecom, finance, health). Entradigm adds capacity without loosening control: multi-stage review, per-tenant content rules, full provenance, and EU AI Act Art. 50 labelling on every AI-assisted surface. What to do next: - Read [Multi-stage review for regulated industries](#a-features-multi-stage-review) - Review the [compliance & security](#c-compliance) category in full - In onboarding, pick the **Mid-market** persona on step 1 (the default) ## What is Entradigm? Start here. The shortest possible explanation of what we built and why it exists. ### Entradigm in one sentence _The agent-native automation platform — software built for AI agents, with a thin human UI on top._ Entradigm is the threshold to the new paradigm where AI agents are the primary citizens of software, and humans interface through a thin layer. The name comes from Latin *intrare* ("to enter / cross the threshold") + Greek δείκνυμι *deiknumi* ("to show / to model") — the root of *paradigm*. What this means in practice: - Every feature exposes a schema-typed API so an agent can drive it directly - Every workflow is a declarative intent that an agent can compose - Every credential stays in your hands — we never hold your OAuth tokens, API keys, or social-account passwords - The human UI is small on purpose — it's the steering wheel, not the engine ### The mental model — one worker, many tenants, your stack _How Entradigm runs your content while never touching your provider credentials._ One Cloudflare Worker orchestrates every cycle. Per-tenant configuration lives in our database, per-tenant CREDENTIALS live in your accounts. When a cycle fires for your tenant, the Worker: 1. Reads your tenant config (brand rules, content rules, schedule, AI provider, social accounts) 2. Calls YOUR AI provider with YOUR key (we never see your bill) 3. Renders the carousel + audio + captions using YOUR TTS + music providers 4. Uploads to YOUR connected posting provider → posts to YOUR social handles 5. Sends the review link to YOUR Telegram bot → you approve We hold: tenant config, content drafts, audit logs. We never hold: Anthropic / OpenAI / ElevenLabs / Suno / your posting-provider / Telegram credentials. ### Why now: the agent-native shift _The next billion users of the internet won't be humans — they'll be AI agents._ Software built for humans first is reaching the end of its lifecycle. The next billion users of the internet will be AI agents acting on behalf of humans — booking, buying, posting, monitoring, deciding. We built Entradigm for that future, not for the present. The platform's primary surface is its declarative API + MCP-callable runtime. The human UI is the second surface, layered on top. This is the inverse of most SaaS: most tools have a human UI with an API bolted on. Entradigm has an agent surface with a human UI bolted on. Practical consequence: every action you can do in the UI, an agent can do via the API. We don't have "internal-only" endpoints. ## Why you need it The case for adopting Entradigm now, not later. ### The cadence gap that's eating your reach _Daily posting beats weekly. Weekly beats monthly. Most teams post when someone remembers — that's the gap._ Social algorithms reward cadence. The accounts that grow are the ones that post consistently — daily, or close to it. The accounts that stagnate are the ones that post when someone has time to remember. Teams know this. The reason they don't post daily isn't lack of will — it's that the *production cost* of each post is too high: - 30-60 min ideation - 30-60 min copy + design - 15-30 min review + scheduling - 5-10 min posting + cross-posting That's 1.5-2.5 hours per post × daily × 5 channels = 7.5-12.5 hours / week of pure production time. Most teams have 0-2 hours / week to spare. Entradigm collapses this to 5 minutes / day of human review. The strategist agent does the rest. ### Why fragmented tools produce fragmented brands _A separate ideation tool + a separate copy tool + a separate scheduler = three brands._ Most teams stitch together: a brainstorming tool (or Notion), a copy generator (Jasper / Claude direct), a design tool (Canva / Figma), a scheduler (Buffer / Hootsuite), and a review surface (Slack threads). Each tool optimizes for its own slice. None of them sees the cumulative brand. Three months in, your feed reads like five different brands in a trenchcoat. Entradigm holds the WHOLE pipeline. Brand voice + visual identity + content rules + cycle history all live in one place. The strategist sees what you posted yesterday before drafting today. Coherence isn't a goal you write down — it's a property of the system. ### Why EU-jurisdiction matters in 2026 _Data residency, EU AI Act, GDPR — choose where your data lives, with whom._ 2025-2026 ratcheted regulatory exposure for any business publishing content in the EU. EU AI Act Article 50 requires AI-assisted content to be labelled. GDPR has been around for years, but enforcement is getting sharper. Entradigm runs on Cloudflare (EU-region available) + Supabase (EU-region available) + your choice of LLM provider. If you choose Anthropic EU or OpenAI EU, your content data never leaves EU jurisdiction. We surface the sub-processor map in your settings → you can see, at any moment, every third-party that touches your data. You approve each one explicitly. ## Cost & ROI The three numbers that matter: cost of doing it manually, cost of doing nothing, cost of doing it with Entradigm. ### Cost of doing it manually _~10 hours / week × your loaded hourly rate. Calculate yours._ Conservative estimate for a marketing team running daily content across 5 platforms: - Ideation: 1 hour / day - Copy + design: 1 hour / day - Review + revise: 30 min / day - Schedule + post: 30 min / day - **Total: ~3 hours / day = ~15 hours / week** At a loaded hourly rate of €60-€120 (which is the actual cost including overhead, not the wage), this is **€900-€1,800 / week = €46k-€94k / year**. That's the floor. It assumes the work actually gets done at that cadence — which most teams can't sustain. ### Cost of doing nothing _Algorithmic reach decay + sales atrophy + brand drift compound silently._ The expensive scenario isn't "spend €50k/yr on a marketing team." It's "spend €0 on marketing, lose €200k/yr in pipeline you would have had." Three compounding costs: - **Algorithmic decay**: every social platform amortizes follower-reach to accounts that post. Skip a week → reach drops 20-40%. Skip a month → reach drops 60-80% and recovers slowly. The opportunity cost of missing the cadence window compounds. - **Sales pipeline atrophy**: B2B SaaS conversion data shows 6-12 inbound touchpoints typical before a buyer reaches out. Each missed touchpoint = a buyer who never enters the funnel. - **Brand drift**: without consistent voice + visual identity reinforcement, you become "that company we vaguely remember" instead of "the company that solves X." Vague memory doesn't close deals. These costs don't appear on any expense line. They appear as the pipeline that never materialized. ### Cost of Entradigm — per-cycle anchor + BYO LLM _~€0.15/cycle infrastructure + your AI-provider bill (typically €5-€50/month at daily cadence)._ Entradigm's cost has two layers: **Infrastructure cost** (paid to ByKA Insights): ~€0.15 / cycle, billed monthly. Daily cadence = ~€4.50 / month / tenant. **AI provider cost** (paid by you, to your provider): depends on the LLM you choose. At daily cadence: - Anthropic Claude Sonnet: ~€10-€20 / month - Anthropic Claude Haiku: ~€2-€5 / month - OpenAI GPT-4o: ~€8-€15 / month - Your locally-hosted open model: €0 + your compute cost You see your AI bill on your Anthropic / OpenAI dashboard — we never see it, never mark it up. **Total typical**: €15-€60 / month / tenant for daily cadence across 5+ platforms. Compare to the €4k-€8k / month manual cost from "Cost of doing it manually." ### Typical payback period _Most tenants recover the full Entradigm cost within 2-4 weeks of the first published cycle._ Payback math for a typical B2B SaaS tenant: - Manual cost saved: ~15 hrs/wk × €80/hr = €1,200/wk = €4,800/month - Entradigm cost: ~€30/month (€0.15 × 30 cycles + AI provider) - Net saving: ~€4,770/month - Payback: ~5 hours into the first week Even if your team's hourly cost is much lower (€20-€30/hr), payback is under 2 weeks. This calculation doesn't include the upside — the pipeline you build by being consistent. That's harder to quantify but usually larger than the cost saving. ## What is unique about Entradigm Four properties no incumbent has. These are the load-bearing differentiators. ### BYO-everything posture _You bring your own AI / TTS / music / Telegram / posting-provider / notification credentials. We never hold them._ Most marketing platforms require you to give them your social account passwords, your OpenAI key, your TTS subscription. They become a credential broker — every credential is one breach away from compromise. We never hold raw credentials. The setup flow: - You buy your own Anthropic / OpenAI subscription → you control the key - You buy your own ElevenLabs / Suno / Mubert subscription → you control the key - You bring your own posting provider → it holds your social tokens, not us - You create your own Telegram bot → its token belongs to you - You define your own webhook destinations for notifications Per-tenant config tells the Worker which BYO providers to call for each cycle. The provider call goes out FROM the Worker, but the credentials are passed in from your encrypted-at-rest tenant config — never logged, never echoed, never stored in plaintext. **Why this matters**: cost ownership stays with you, license-chain audit stays clean, breach exposure is your responsibility not ours, and you can move off Entradigm tomorrow without losing your accounts. ### Agent-callable by design _Every UI action has an API + MCP equivalent. We don't have "internal-only" endpoints._ The Build FOR AI thesis (vs. WITH AI) means the agent surface is the primary surface, not the bolted-on one. Concretely: - Every cycle trigger has both a UI button and a POST /strategist/run API endpoint - Every brand-rule edit has a UI form and a PATCH /api/tenants/{id}/brand endpoint - The whole platform is wrappable as an MCP server — agents can use it as a tool - Schemas are introspectable: [GET /strategist/schema](/strategist/schema) returns the JSON schema of every intent Two live, public, zero-auth discovery surfaces let an agent learn the platform before it touches a single credential: - [GET /strategist/schema](/strategist/schema) — the machine-readable JSON schema of every intent + the platform capabilities block (apiVersion, capabilities) - [GET /.well-known/llm.txt](/.well-known/llm.txt) — a plain-text orientation file for LLM agents (also served at [/llms.txt](/llms.txt) and [/llm.txt](/llm.txt)): the platform docs flattened to markdown + the live endpoint list + copy-paste curl recipes Fetch the schema in one line: ```bash curl -s https://entradigm.com/strategist/schema | jq '.capabilities' ``` An external agent (your n8n workflow, your Make scenario, your Devin / Cognition agent) can drive Entradigm exactly the same way a human can. ### EU-jurisdiction first _Default deployment region is EU. US is opt-in. Sub-processor list is in your dashboard._ We're a Bavaria-based operator. Our customers' first market is usually Germany / DACH / EU. EU jurisdiction is the default, not the afterthought. Cloudflare Workers run in the EU region for EU tenants. Supabase EU region holds the database. Your AI provider can be Anthropic EU or OpenAI EU. The sub-processor list (Settings → Privacy → Sub-processors) shows every third-party that touches your data + which region they operate in + the DPA reference. You explicitly approve each one. ### Open architecture, escapable _Your data stays exportable. Your providers stay swappable. No lock-in by design._ Lock-in is how SaaS companies extract rent. We chose the opposite posture: - Your data is exportable via GDPR Art. 20 portability endpoint (JSON + CSV) — anytime, no friction - Your AI provider is swappable — change the key in Settings, the next cycle uses the new provider - Your social accounts are swappable — they're in your own posting-provider account, not ours - The platform itself runs on commodity infrastructure (Cloudflare + Supabase) you could replicate If you decide to leave Entradigm, you take everything that's yours and we wave goodbye. The system is designed to be escapable — which keeps us honest about delivering value every month. ## Features What the platform actually does. Grouped by the lifecycle of a cycle. ### Multi-tenant brand isolation _One platform, N tenants. Brand A and Brand B never see each other._ Each tenant has its own brand rules, content rules, social accounts, AI provider config, schedule, and review history. Tenant data is row-level isolated in Postgres (Supabase RLS) — even an agency operator with access to multiple tenants sees only the one they're switched into. Pricing scales per-tenant, so the multi-tenant feature is free up to your plan's tenant count. ### Cycle orchestration — from signal to published post _What runs between a signal and a published post: durable workflow steps, then mandatory human review._ Every cycle runs as one durable Cloudflare Workflow. A signal starts it — from the manual trigger, the auto-pilot schedule, or the agent API — and the workflow advances through discrete steps, each retried independently: - **Script** — an LLM drafts the content from your brand voice, content rules, and history - **Slides** — the script becomes structured slide JSON (tool-forced output, never free text) - **Voiceover** — text-to-speech narration (English today) - **Music** — a background track derived from the script, with a static library as fallback - **Render** — the slides render to video variants for each target format - **Mux** — voiceover, music, and video are combined into the finished posts The cycle then pauses for **mandatory human review** — auto-approve is locked off, so nothing publishes on its own. You approve or park it from the app or a Telegram review link. On approval the posts publish immediately or on the schedule you set, and the results flow into the CRM as tracked per-post, per-platform performance. ### Cycle scheduling — cadence, blackouts, and auto-park _Cron cadence and blackout windows; a reviewable cycle auto-parks after a timeout, but never auto-publishes._ Per-tenant schedule supports: - Standard cadences (daily / MWF / weekly / monthly) - Custom cron expressions for non-standard windows - Blackout windows (holidays, conferences, sensitive dates) Auto-approve is locked off — a cycle never publishes on its own. If a reviewable cycle sits past your approval timeout (48 hours by default), it is auto-parked, not auto-published; you can still return and approve it later. Time zone is per-tenant (defaults to the operator's time zone). ### Brand derivation — auto-fill from your materials _Point at your website + brand book + past posts → AI drafts the brand profile._ Instead of filling 30 form fields manually, paste your website URL + optionally upload a brand book PDF + a few past social posts. The brand-derive agent reads them and proposes a brand profile: voice keywords, anti-patterns, visual identity inputs (colors, fonts), tone register, target audience phrasing. You review the draft + adjust + save. Typical onboarding time goes from 45 minutes to 8 minutes. ### Multi-stage review for regulated industries _Strategist → Legal-reviewer → Approver routes for telecom / finance / health._ Default review = one human approval. Regulated tenants can add stages: - Strategist drafts → Legal-reviewer agent runs compliance check (claims, disclaimers, AI-disclosure cadence) → Human approver - Optional human legal reviewer slot for high-stakes posts - Per-stage Telegram routing — legal reviewer gets a different chat than the approver Configurable per-tenant. Once set, every cycle routes through the configured stages. ### Render pipeline — Remotion, R2, and Upload-Post _Carousel slides rendered as videos, stored in R2, posted via Upload-Post._ Carousel content renders through Remotion (React-based video framework) into MP4 + still frames. Rendered assets are written to the platform's private R2 bucket — rendering, muxing and storage run on platform infrastructure, with no BYO rung. Upload-Post handles cross-platform posting across up to 11 platforms (LinkedIn / X / Instagram / Facebook / TikTok / YouTube and more). By default a platform-managed Upload-Post profile posts under our vendor key; you can also bring your own Upload-Post account. The Worker sends the post payload + asset URL to Upload-Post, which handles platform-specific quirks; raw social tokens never touch the platform. ## How to onboard From "I bought this" to "first cycle published" in 15 minutes. ### Sign up + first sign-in _Invitation-only. Passwordless magic-link sign-in + mandatory authenticator-app (TOTP) two-factor._ Entradigm is invitation-only — there is no public self-signup. An operator invites you by email; the invite is a single-use link valid 7 days. When you accept, you sign in passwordlessly: we email you a one-time magic link, you click it, then you set up a mandatory authenticator-app (TOTP) second factor and save your recovery codes. After that you land in the onboarding wizard. We never hold a password — there isn't one to leak. If you run several brands and need additional tenants later, a platform operator provisions each one and invites you to it — workspace creation is operator-gated, not self-serve. ### The 7-step wizard walkthrough _Brand → voice → visual → sources → schedule → notifications → finalize. 8-12 minutes typical._ The wizard walks through: 1. **Organization basics** — name, industry, primary language 2. **Brand voice** — keywords + anti-patterns 3. **Visual identity** — colors, fonts, carousel style preference 4. **Sources** — your website + brand materials (for brand-derive) 5. **Schedule + cost preview** — pick cadence, see the per-month cost preview 6. **Notifications** — Telegram bot setup (paste your bot token + chat ID) 7. **Review + finalize** — confirm everything, click Create 8-12 minutes typical, faster if you let brand-derive do step 2-3 for you. ### Your first cycle, end-to-end _Trigger a cycle, watch it progress, approve the result._ After the wizard: 1. Click "Trigger cycle" on the cycles page → the cycle starts 2. Watch the cycle progress 3. Receive Telegram review link → open it 4. Approve or park with a note 5. If approved: your connected posting provider posts to your social accounts; you see a success row in cycles list After this first cycle, scheduling takes over — the cron fires per your config. ### Inviting team members _Settings → Team → Invite. Three role tiers._ Three role tiers per tenant: - **Operator** — can trigger cycles, approve, edit brand, edit schedule - **Reviewer** — can approve / park cycles, cannot edit brand or schedule - **Viewer** — read-only access to cycles + brand config Invites go via email as a single-use link (valid 7 days). The invitee signs in passwordlessly via a magic link, sets up a mandatory authenticator-app (TOTP) second factor with recovery codes, then gets the role you assigned. You can revoke any role at any time. ## BYO — Bring Your Own (configure each) Six BYO surfaces. Each is optional with a sensible default; each is configurable per-tenant. ### BYO AI provider — Anthropic / OpenAI / custom endpoint _Default: ByKA-shared Anthropic. Switch to your own key anytime._ Settings → AI provider lets you choose: - **ByKA shared** (default) — pay-as-you-go via your subscription - **BYO Anthropic** — paste your Anthropic key (sk-ant-…); model selectable - **BYO OpenAI** — paste your OpenAI key (sk-…); GPT-4o / GPT-4.1 / GPT-4 selectable - **BYO custom endpoint** — any OpenAI-compatible endpoint URL + key (Ollama, vLLM, LiteLLM proxy, your locally-hosted Llama, etc.) Keys are encrypted at rest in Supabase Vault, never displayed back, never logged. You can rotate any time. ### BYO TTS provider — ElevenLabs / OpenAI / Azure / custom _For carousel narration. Optional; cycles work without narration too._ Settings → TTS provider lets you choose: - **None** — skip narration (carousel posts as silent slides) - **BYO ElevenLabs** — paste your ElevenLabs key + voice ID - **BYO OpenAI TTS** — uses your OpenAI key (already set in AI provider) - **BYO Azure Speech** — paste your Azure key + region - **BYO custom endpoint** — any OpenAI TTS-compatible endpoint License-chain stays clean: you hold the TTS subscription, you hold the voice license, we never store generated audio beyond the cycle's lifetime. ### BYO Music provider — Suno / Mubert / Soundraw / custom library _Background music for carousel videos. License-chain stays in your control._ Settings → Music provider lets you choose: - **None** — silent carousels (default) - **BYO Suno** — paste your Suno API key (commercial-license tier) - **BYO Mubert** — paste your Mubert API key - **BYO Soundraw** — paste your Soundraw API key - **BYO custom library** — upload royalty-free tracks to your own R2 bucket; we reference them by URL We never re-distribute music. The license-chain is: provider → your account → your post. No middleman. ### BYO Telegram bot — for review links + cycle notifications _You create the bot via @BotFather, paste its token, we never see chat history._ Telegram review links are how you approve / park cycles from your phone. To set up: 1. Open @BotFather in Telegram 2. /newbot → name + username → BotFather gives you a token 3. Paste the token in Settings → Notifications → Telegram 4. Send /start to your new bot → forward the message to us so we get the chat ID 5. Save We send review links to that chat. We never read incoming messages other than your APPROVE / PARK button replies. ### Social posting — Upload-Post (platform-managed or your own account) _Posting runs through Upload-Post: a platform-managed profile by default, or your own Upload-Post account. No API keys to paste; the platform never holds raw social tokens._ Posting and delivery run on platform infrastructure in every plan, through **Upload-Post** as the posting provider. Upload-Post holds the social-network OAuth for LinkedIn, X, Instagram, Facebook, TikTok, YouTube and more — the platform never holds those tokens. There are two modes: - **Platform-managed (default)** — each workspace gets its own Upload-Post profile under our vendor key. You connect from Settings → Social accounts: a single-use hand-off opens Upload-Post's branded hosted portal, you authorize each network there, and a return callback re-syncs what you connected (including your LinkedIn pages). There are no API keys to paste. - **Bring your own** — connect your own Upload-Post account instead. It holds your social OAuth; the platform still never sees raw tokens. After connecting, you choose which networks each cycle posts to (up to 11 platforms). LinkedIn page targeting is set in-app and validated against your own connected pages. ### BYO notification channels — Slack / email / webhook _Beyond Telegram: route cycle events to where your team works._ Settings → Notifications → alternative channels: - **Slack webhook** — paste your Slack incoming-webhook URL - **Email** — set a destination email; we send via your SMTP or our Postmark fallback (BYO Postmark optional) - **Generic HMAC-signed webhook** — paste a URL; we POST cycle events signed with a shared secret You can route different events (cycle ready / cycle failed / cycle approved) to different channels. ## Compliance & security GDPR, EU AI Act, sub-processors, encryption. The serious side. ### GDPR rights — Art. 15 / 17 / 20 _Data export, data erasure, data portability. 30-day SLA._ Self-service GDPR endpoints under Settings → Privacy: - **Art. 15 (Access)** — download a JSON + PDF of every data point we hold about your tenant - **Art. 17 (Erasure)** — request deletion; 30-day SLA; we cascade across all sub-processors - **Art. 20 (Portability)** — export in JSON + CSV for migration to a competitor For human review or legal questions: email contact@bykainsights.com (privacy contact — no DPO is appointed). ### EU AI Act Article 50 — AI-disclosure cadence _How we label AI-assisted content + why the "C3 AI disclosure" consent cannot be disabled._ EU AI Act Article 50 (effective 2026) requires AI-generated or AI-substantially-assisted content to be labelled. Our default: every cycle includes a footer disclosure like "AI-assisted, reviewed by [Operator name]" in the caption. The exact wording is configurable per-tenant, but the PRESENCE of the disclosure cannot be disabled. That's a regulatory floor, not a product choice. If you operate in a non-EU jurisdiction, the disclosure is optional — but we keep it on by default because most ByKA tenants serve EU customers. ### Sub-processor list + SCC posture _Anthropic / Supabase / Cloudflare / Exa / your posting provider — what each touches._ Current sub-processors (visible in Settings → Privacy → Sub-processors): - **Cloudflare** — Workers runtime + R2 storage + DNS (EU region available) - **Supabase** — database + auth (EU region available) - **Anthropic** — LLM (EU endpoint available; or BYO your own provider) - **Exa** — web research (US-based; opt-in) - **Your posting provider** — social posting (the BYO provider you connect; named in your live sub-processor list once connected; required if posting to social) - **OpenAI** — only if you choose BYO OpenAI for AI / TTS Each has a Standard Contractual Clauses (SCC) reference + most have EU regions. ### Encryption + secret handling _TLS everywhere; Vault-encrypted secrets; presence-only logging._ All in-transit traffic is TLS 1.3. All secrets (BYO keys, tokens, OAuth refresh tokens that we issue ourselves) are encrypted at rest using Supabase Vault. Our pre-tool tripwire blocks any command that would echo a secret value to logs or stdout. Logs contain only "present / absent" for secret-shaped values. If a secret is accidentally exposed (operator mistake, log leak), our incident-response runbook includes immediate rotation across all sub-processors. ## Integrations Every external service Entradigm talks to + how the connection is established — and how an external agent connects to Entradigm. ### Agent API & discovery surfaces _How an external agent finds, introspects, and drives Entradigm — four public schema GETs + llm.txt, no auth to read._ Entradigm exposes public, zero-auth discovery surfaces an agent reads to orient itself, plus a bearer-gated POST surface it calls to act: - [GET /strategist/schema](/strategist/schema) — JSON schema of every intent (request, response, slides, provenance) plus the capabilities block: apiVersion and per-intent live flags — the authoritative list of what this deployment can do. CORS-enabled, readable from any origin. - [GET /strategist/tools/schema](/strategist/tools/schema) — the agent tool registry. - [GET /memory/schema](/memory/schema) — the check-memory (dedup) intent schema. - [GET /library/schema](/library/schema) — the query-library intent schema. The ingest-library-file intent is retired: it is advertised live:false and its POST returns HTTP 410. Tenant knowledge ingestion happens in-app under Settings → Materials. - [GET /.well-known/llm.txt](/.well-known/llm.txt) — plain-text orientation for LLM agents; also at [/llms.txt](/llms.txt) and [/llm.txt](/llm.txt). Contains these docs flattened to markdown, the live endpoint list, and curl recipes. Platform docs + public schema only — never any tenant data. - POST /strategist/run — the action endpoint. Bearer-token gated and per-IP rate-limited; an agent supplies the tenant's token to trigger a cycle. Agent-triggered cycles pass the same entitlement, budget, and human-review gates as cycles started in the app — nothing publishes without human approval. A typical discovery handshake: ```bash # 1. orient curl -s https://app.entradigm.com/.well-known/llm.txt # 2. introspect the capabilities block curl -s https://app.entradigm.com/strategist/schema | jq '.capabilities.intents' # 3. act (bearer-gated) curl -s -X POST https://app.entradigm.com/strategist/run \ -H "Authorization: Bearer $ENTRADIGM_TOKEN" \ -H "Content-Type: application/json" \ -d '{"intent":"generate-cycle","tenant":"your-tenant","cycleId":"2026-07-23-demo"}' ``` Every UI action has a schema-typed API equivalent — an external agent drives Entradigm through the same contract, and the same human-review gate, as an operator in the interface. ### Anthropic Claude — default LLM _Claude 4.7 Sonnet for cycle strategist; Haiku for cheaper tasks._ Default model bindings: - Strategist (content draft) — Claude Sonnet 4.7 - Reviewer (compliance + brand-rules check) — Claude Haiku 4.5 (cheaper, faster) - Brand-derive — Claude Sonnet 4.7 You can override per-tenant via BYO Anthropic key + model choice. ### Posting provider — Upload-Post _Upload-Post is the posting provider for LinkedIn, X, Instagram and up to 11 platforms in total._ Posting to social runs through **Upload-Post** (TONVI TECH SL, EU), the single posting provider. Holding social-network OAuth carries compliance complexity we deliberately delegate — Upload-Post holds the platform tokens, not us. By default each workspace connects a platform-managed Upload-Post profile under our vendor key; you can also bring your own Upload-Post account. Up to 11 platforms are supported: Instagram, TikTok, LinkedIn, X, Threads, YouTube, Pinterest, Reddit, Bluesky, Facebook and Google Business. Setup: see [Social posting](#a-byo-byo-posting-provider) in the BYO category. ### Telegram — review + notifications _BYO Telegram bot for cycle review links + alerts._ Telegram is our default review surface because it's mobile-native + low-friction for approval buttons. Alternative channels (Slack / email / webhook) are configurable; see BYO Notifications. ### Cloudflare — Worker runtime + R2 storage _Workers run the orchestration; R2 holds rendered assets._ Cloudflare is our infrastructure provider. We run on Workers (EU region available) + R2 (S3-compatible object storage). You don't configure this. We do. ### Supabase — auth + database _Auth via Supabase OAuth flow; data in Supabase Postgres with RLS._ Supabase handles: - Authentication (passwordless magic-link email sign-in + mandatory TOTP two-factor; invitation-only — no public self-signup) - Database (Postgres with row-level security for tenant isolation) - Vault (encrypted secrets storage) EU region for EU tenants. ## Roadmap Where Entradigm is going, in calendar-quarter granularity. ### Now live — BYO LLM routing and GDPR data rights _Two items that were on this roadmap are live: per-cycle BYO AI routing, and in-app GDPR data rights (self-serve deletion; access and export on request)._ Both of these were on our roadmap and are now available: - **BYO LLM routing** is live. Each cycle can run on your own Anthropic key, resolved per cycle, with a fail-closed provider breaker and an optional explicit fallback to the platform provider. See [BYO AI provider](#a-byo-byo-ai). - **GDPR data rights** are in the app. Self-serve account deletion runs with MFA step-up — a per-table erasure cascade plus media erasure and a 30-day grace period. Data access and portability (Art. 15 / 20) are available on request. See [Compliance & security](#c-compliance). ### Q4 2026 — Lead-capture for tenants _CTA-driven lead-capture flows + email aliases per platform._ Tier 3 work: per-tenant CTA keywords + per-platform email aliases. Inbound replies route through our processor into your CRM via webhook. Optional Pro-tier billing layer (Stripe-based) lands here too. ### 2027 — MCP server + a formal versioned API _The agent surface is public today; the formal MCP server and a versioned /v1/ path are the roadmap._ The agent surface is already public: [GET /strategist/schema](/strategist/schema), llm.txt, and the bearer-gated POST /strategist/run all work today. What is on the roadmap is the formal packaging — a public MCP server where any LLM agent can wrap Entradigm as a tool with full schema introspection, and a versioned /v1/ path so the contract does not shift under an agent. With those, an external agent (a coding agent, your n8n flow) drives Entradigm — trigger a cycle, then approve or park it — through one standard, versioned interface. ### Long-term — agent-to-agent marketplace _Tenants expose their content corpus to other agents under licensed terms._ Speculative direction: tenants can opt-in to expose their content corpus + brand rules to other agents under licensed terms. An agent serving a different tenant can subscribe to your industry coverage, your brand voice, your fact-checked content library. Like a Spotify for industry-specific agent-callable content. No timeline yet. ## Support & help When you need a human, here's how to reach us. ### In-app help — categorized FAQs _The /app/help page has categorized FAQs + a contact form._ Most common questions are answered in the categorized FAQ at /app/help. Categories: account · billing · brand setup · cycles · publishing · compliance · troubleshooting. If your question isn't there, the contact form at the bottom of /app/help routes to the right human inbox. ### How to reach us _The contact form on the Help page is the direct line — urgent issues included._ All questions — including urgent, cycle-blocking ones — go through the contact form at the bottom of [/app/help](/app/help). It reaches the operator inbox directly (and our legal contact when the question is compliance-shaped). Usual response: under 24 hours, fastest during EU business hours. Reporting a cycle problem? Include the cycle's topic or ID from the Cycles page — it saves a round-trip. ### Platform status page _A public status page is on the roadmap; today the Cloudflare status page covers the infrastructure layer._ A public status page at status.entradigm.com — Worker, database, AI-provider, and posting-provider availability plus uptime history and an incident timeline — is on the roadmap. Today: the Cloudflare status page covers the infrastructure layer. <<>> ## Live schema endpoints These public GET endpoints return the JSON schema of every intent plus the tool registry. CORS-enabled, no auth — introspect the contract before calling the bearer-gated POSTs. The capabilities block in /strategist/schema is authoritative: treat an intent as callable only if its live flag is true. - GET https://app.entradigm.com/strategist/schema Intent + response + slides + provenance schemas; apiVersion + capabilities (platforms, content types, per-intent live flags). curl -s https://app.entradigm.com/strategist/schema - GET https://app.entradigm.com/strategist/tools/schema The agent tool registry (5 tools). curl -s https://app.entradigm.com/strategist/tools/schema - GET https://app.entradigm.com/memory/schema The check-memory (dedup) intent schema. curl -s https://app.entradigm.com/memory/schema - GET https://app.entradigm.com/library/schema The query-library intent schema. The retired ingest-library-file shape is still emitted for compatibility; that intent is live:false and its POST returns HTTP 410. Tenant knowledge ingestion happens in-app (Settings -> Materials), not through this API. curl -s https://app.entradigm.com/library/schema Bearer-gated POST surface (Authorization: Bearer ): - POST https://app.entradigm.com/strategist/run Trigger a content cycle. Passes the same entitlement, budget, and human-review gates as the in-app trigger; the cycle pauses for human approval before anything publishes. - POST https://app.entradigm.com/memory/check Content dedup check (read-only, no side effects). - POST https://app.entradigm.com/library/query Query the tenant's uploaded knowledge corpus. Returns zero chunks when the tenant has no uploaded corpus — it never fabricates results.