Log in
Creator OS

User Guide

How to actually run InfluDNA, in the order you would run it. Every screenshot is the real product, captured with the app in Thai; button names in the steps are given in English, as your app will show them. Tap any picture to see it full size.

What this app does, and what it will not do

  • It prepares the work; a person approves every post. There is no setting that removes that step.
  • It posts for real to YouTube and LINE only. TikTok, Instagram, Facebook and X are prepared as a package for you to post by hand.
  • Affiliate links are built with your own affiliate ID. This platform takes no cut of your commission.
  • Money figures are estimates and say so. Reach and engagement on simulated posts are invented, and labelled.

Whole-app guide

Choose the part of InfluDNA you need

InfluDNA is larger than Affiliate, and it now does three jobs rather than one: the affiliate loop, training that produces a certificate, and one brief turned into a set of posts. Start with the six-step core flow if you are new, or jump directly to one of the nine sections below. Open a section to see what every page asks for, why it asks, what you get and where to continue.

The core flow for most work

Use this path for a normal content cycle. Affiliate replaces the first content-input step with a product import, then rejoins at Review.

1

Dashboard

Open
Enter
Nothing — read the overview and pending work.
Why
Choose the most useful next action instead of guessing.
Result
A clear starting point for this session.
Next
Audience DNA, Content, or Affiliate
2

Audience DNA

Open
Enter
Segment name (required), interests, platform, age and region.
Why
Turn an audience hypothesis into three simulated personas.
Result
Personas and simulated interview prompts — not measured audience data.
Next
Content
3

Content

Open
Enter
Goal or prompt, content type, tone and optional Creator DNA.
Why
Create a draft that matches the intended audience and channel.
Result
A draft caption, script or creative description.
Next
Review
4

Review

Open
Enter
Read the full draft; add a note if a change is needed.
Why
Keep a person responsible for every public claim.
Result
Approved work, or a rejected item with feedback.
Next
Publish
5

Publish

Open
Enter
Approved item, destination platform and publish time.
Why
Send supported posts or prepare a complete manual-post package.
Result
A scheduled/posted item or a downloadable manual package.
Next
Analytics
6

Analytics

Open
Enter
No form; select a period or import real reports where offered.
Why
Separate real evidence from estimates and simulated activity.
Result
Performance signals for the next content decision.
Next
Dashboard or Content for the next cycle

All app sections and pages

Open only the section you are working on. The guide stays short while the page-level instructions remain close at hand.

1. Start & strategyUnderstand the workspace, define the audience and choose what to make.Open
The dashboardFull size
Counts and recent lists, nothing estimated. Every tile here is a plain count of your own rows.
Audience DNAFull size
Three personas per segment, generated from the name and criteria you typed. The same input always gives the same three people — they are a thinking tool, not research.

Dashboard

Open
Enter
Nothing — read the overview and pending work.
Why
Choose the most useful next action instead of guessing.
Result
A clear starting point for this session.
Next
Audience DNA, Content, or Affiliate

Launch

Open
Enter
Creator goal and current stage.
Why
Turn a broad goal into channel milestones.
Result
A practical launch path.
Next
Audience DNA or Content

Audience DNA

Open
Enter
Segment name (required), interests, platform, age and region.
Why
Turn an audience hypothesis into three simulated personas.
Result
Personas and simulated interview prompts — not measured audience data.
Next
Content
2. Affiliate commerceBring in products, create tracked links and prepare commission content.Open
Open the complete Affiliate walkthrough below
The top of Affiliate Copilot with TikTok Shop connectFull size
Start here. TikTok Shop API sync is the first card and can connect before a Shopee ID is saved. The amber notice means the rest of the affiliate workspace — imports, product actions and tracking links — stays locked until you save your own Shopee Affiliate ID.

Affiliate

Open
Enter
TikTok authorization or Shopee Product Feed CSV, plus your own affiliate account details.
Why
Build content from products you are actually allowed to promote.
Result
Products, tracked links, draft packages and imported performance evidence.
Next
Review, then Publish
3. Content & mediaCreate text, slides, images, video plans and audio assets.Open
The content factoryFull size
Free-form generation, separate from the affiliate loop. Text and captions come from a real model when one is configured; image, video and audio here return a written description, not a file.

Content

Open
Enter
Goal or prompt, content type, tone and optional Creator DNA.
Why
Create a draft that matches the intended audience and channel.
Result
A draft caption, script or creative description.
Next
Review

Slideshow

Open
Enter
Product or topic, slide count and creative angle.
Why
Turn one idea into a photo-mode story.
Result
An editable slide sequence.
Next
Review or Publish

Media Studio

Open
Enter
Creative prompt and tone.
Why
Organise a video concept and its media.
Result
A media project ready for refinement.
Next
Review

Images

Open
Enter
A precise image prompt and provider settings.
Why
Generate a visual asset for a post.
Result
A generated image when an image provider is configured.
Next
Content or Media Studio

Audio Drafts

Open
Enter
Title, style and audio prompt.
Why
Write and organise an audio concept before production.
Result
A written audio draft.
Next
TTS or Media Studio
Enter
The exact text to speak and a voice option.
Why
Turn approved copy into speech.
Result
A generated speech file when configured.
Next
Media Studio or Files

Transcribe

Open
Enter
An audio file.
Why
Convert speech into editable text.
Result
A transcript.
Next
Content or Documents

Voice Profiles

Open
Enter
Profile name (required), tone, language and notes.
Why
Reuse a consistent voice direction.
Result
A reusable voice profile.
Next
TTS or Audio Drafts
Enter
An image URL or uploaded image.
Why
Extract copy from a screenshot or document image.
Result
Editable extracted text.
Next
Content or Documents
4. Review & publishingCheck every claim, approve the final work and send it to the right channel.Open
The approval queueFull size
Three tabs: pending, approved, rejected. Each card carries the whole caption — it scrolls rather than being cut off, because you are putting your name on all of it.
The publishing hubFull size
Two cards on this page are both headed “Connected platforms”. The one at the top left only writes a handle down for your own reference; its own note says so. The real one is below it.

Review

Open
Enter
Read the full draft; add a note if a change is needed.
Why
Keep a person responsible for every public claim.
Result
Approved work, or a rejected item with feedback.
Next
Publish

Publish

Open
Enter
Approved item, destination platform and publish time.
Why
Send supported posts or prepare a complete manual-post package.
Result
A scheduled/posted item or a downloadable manual package.
Next
Analytics
5. Analytics & improvementRead outcomes carefully and feed useful evidence into the next cycle.Open
The analytics dashboardFull size
Content items and AI spend are counted from real rows. Reach, engagement and revenue are computed from simulated posts only — read the section below before you quote any of them.

Analytics

Open
Enter
No form; select a period or import real reports where offered.
Why
Separate real evidence from estimates and simulated activity.
Result
Performance signals for the next content decision.
Next
Dashboard or Content for the next cycle

Charts

Open
Enter
Choose an available dataset and chart fields.
Why
Make comparisons easier to see.
Result
A chart based on the selected source.
Next
Analytics or Documents
6. Workflows & operationsPlan repeatable work, dates, campaigns and team follow-up.Open
The workflow builderFull size
A straight chain, not a canvas. The palette only offers steps that can legally follow the previous one, so an invalid pipeline cannot be drawn in the first place.

Workflows

Open
Enter
A workflow description, steps and optional schedule.
Why
Make a repeatable process explicit.
Result
A saved workflow that can be run and reviewed.
Next
Review run history

Schedule

Open
Enter
Title, date/time, duration and optional guest.
Why
Put production work on a real calendar.
Result
A scheduled calendar item.
Next
Dashboard

Campaigns

Open
Enter
Campaign name, goal, dates and channel details.
Why
Keep related deliverables under one outcome.
Result
A campaign workspace.
Next
Board or Content

Board

Open
Enter
Tasks, owners and status.
Why
See production progress at a glance.
Result
A visible work queue.
Next
Review

Goals

Open
Enter
Goal, target value and due date.
Why
Connect daily output to a measurable outcome.
Result
A trackable goal.
Next
Dashboard or Analytics

Browser

Open
Enter
A URL or saved browser task.
Why
Keep assisted web research in the workspace.
Result
A browser session or captured reference.
Next
Knowledge or Content

Comments

Open
Enter
Comment or reply on a work item.
Why
Keep decisions beside the work.
Result
A visible feedback trail.
Next
Board or Review
7. Library, data & accountStore source material, find it again and manage personal or workspace settings.Open
The prompt library, inside the builderFull size
Two rows of filters, because there are two questions. The top row is what you are posting about; the second is why anyone would say “how did you think of that”. The number beside each is real — nothing is padded to make the set look full.
Admin settings for shared publishing servicesFull size
Admin is the last page in the Library, data & account section. Server-wide integrations and secrets are configured here by an administrator; regular users return to the feature page after the service is enabled.

Documents

Open
Enter
Document title and content.
Why
Keep long-form working notes.
Result
A reusable document.
Next
Knowledge or Content

Files

Open
Enter
A file upload and optional description.
Why
Keep source assets with the workspace.
Result
A stored asset.
Next
Documents, Content or Media Studio

Knowledge

Open
Enter
A source, note or official guide to keep.
Why
Give future work a traceable reference.
Result
A searchable knowledge entry.
Next
Search or Content

Data Sources

Open
Enter
Connection details for a supported source.
Why
Make the origin of evidence explicit.
Result
A configured data source.
Next
Analytics or Charts

Bookmarks

Open
Enter
A useful page or item to save.
Why
Return to important work quickly.
Result
A saved shortcut.
Next
The bookmarked page

Reviews

Open
Enter
A rating and review text.
Why
Keep qualitative feedback for comparison.
Result
A review record.
Next
Analytics or Content

Chat

Open
Enter
A question with enough context.
Why
Explore or clarify workspace information conversationally.
Result
A response to verify before use.
Next
Documents or the relevant work page

Search

Open
Enter
A keyword or phrase.
Why
Find existing workspace material.
Result
Matching records and pages.
Next
Open the relevant result

Settings

Open
Enter
Profile, locale and workspace preferences.
Why
Make the app fit your working context.
Result
Saved personal/workspace preferences.
Next
Dashboard

API Keys

Open
Enter
Key label, scope and expiry where available.
Why
Grant limited programmatic access.
Result
A secret shown once — store it safely.
Next
The integrating service

Billing / Wallet

Open
Enter
Plan or payment action; wallet records where applicable.
Why
Manage service access and balances.
Result
An updated plan or transaction record.
Next
Wallet or Dashboard

Security & account

Open
Enter
Passkey, notification and account-security preferences.
Why
Protect access and control alerts.
Result
Updated passkeys, flags, notifications or audit visibility.
Next
Settings or Audit

Admin

Open
Enter
Server-wide provider and integration settings; admins only.
Why
Enable shared capabilities without hardcoding secrets in the app.
Result
Configured services for permitted users.
Next
Return to the feature you enabled
8. Training & certificationAuthor a course, run it live, and issue a certificate a stranger can check.Open
Open the complete training walkthrough below
The Learning Studio, with one published courseFull size
Two halves on one screen, and they are different products for the same person: the courses this workspace authored, and the courses this person is taking. The numbers beside them are different kinds of fact, which is why they are never in one list.
The Control Room during a running sessionFull size
The amber line at the top is the constant, not a notice: a public live is not statutory training and no row in the settings can switch that sentence off. Below it, the run of show with its three separate presses, the join code and its QR — which only exist once the session has started — and the producer's panic button.

Learning Studio

Open
Enter
A title, a markdown file, a scaffold or a knowledge pack — then lessons and questions.
Why
Produce training that can measure one named person, because that is what a record needs.
Result
A published course, a skip-proof player, and a certificate on a pass.
Next
Training rounds, or the standards panel

Live Classroom

Open
Enter
A run of show written before you go live, and the language the live is conducted in.
Why
Let a room answer on a channel this app controls — and produce the micro-course afterwards.
Result
Group figures, never a person, and a draft course. A live is never a training record.
Next
Learning Studio, to publish what the live became

Training rounds

Open
Enter
One published course version, a group of people and a window.
Why
Keep the record an inspection reads, person by person.
Result
A roster that names people and an overview that names nobody.
Next
Attestations, or the standards panel

Attestations

Open
Enter
A description of a piece of work, and a link to it.
Why
Let somebody who is not you say whether they saw it.
Result
A request, until somebody answers it. By itself it confirms nothing.
Next
Badges, on the same desk

Spaced review

Open
Enter
Nothing — questions you have already answered come back on their own dates.
Why
Answer from memory after a gap, which measured better than doing it straight away.
Result
A queue that is usually empty, and that is the ordinary state.
Next
Learning Studio

Knowledge packs

Open
Enter
Choose a pack that ships with this install.
Why
Start from concepts and questions somebody already sourced.
Result
A draft course. Nothing here publishes anything.
Next
Learning Studio
9. Ideas, brand & sharingTurn one brief into a checked set of ideas, put your brand on them, and share what worked.Open
Open the complete idea-set walkthrough below
The Idea Matrix at the brief stepFull size
Three boxes and only the first is required. The credit balance is in the top right and the line under the button says which half of this is free: proposing angles costs nothing, building the grid has a price, and the price is on the button.
The brand kit, with a palette savedFull size
Read the line under Name and tagline before anything else: neither is sent to the image model, because asking a model to letter a name gives back a mangled wordmark. Further down, the page splits into what is applied exactly and what is only steered — and says which of your settings is in which half.

Brand kit

Open
Enter
Up to five colours, a logo, style words and a font name.
Why
Decide the look once, and learn which half of it a picture actually obeys.
Result
Layers applied exactly, and a sentence that only steers a model.
Next
Idea Matrix

Idea Matrix

Open
Enter
A topic, then up to five angles you confirm or rewrite.
Why
Get a whole set of gate-checked ideas before spending anything on producing them.
Result
A grid, a printable compliance report, and drafts for only the cells you chose.
Next
Review, or turn a cell into a clip

Caption check

Open
Enter
A caption, pasted. No account and no sign-up.
Why
Read one piece of wording against the Thai advertising rules before it goes out.
Result
Findings with an action each, at the strictest reading. Nothing is stored and nothing is blocked.
Next
Idea Matrix

My recipes

Open
Enter
A brief, the angles that worked and the words you like. No pictures, no links.
Why
Write down what worked so somebody else can start from it.
Result
A recipe waiting to be read. Personal data is cut on the way in and marked with ▮.
Next
Recipe gallery

Recipe gallery

Open
Enter
Nothing — browse what other people published.
Why
Start from a recipe rather than a blank brief.
Result
A copy in your own idea matrix. Nothing appears here without a human pressing a button.
Next
Idea Matrix

Invite friends

Open
Enter
Nothing — mint a code and share the link.
Why
Earn a share of what the people you brought in actually paid.
Result
Money per currency and per state, never added together and never converted.
Next
Creator programme

Creator programme

Open
Enter
An application saying what you make.
Why
Get a plan you do not pay for, in exchange for posting regularly.
Result
A term with a post count — counting only posts this app published for you.
Next
Idea Matrix

Section 2 · Affiliate commerce

From a product source to one finished affiliate post

About 15–25 minutes the first time

Choose one product source first. TikTok uses an approved API connection; Shopee currently uses the official Product Feed file from your own Affiliate portal. Both routes meet in the same Products list, then follow the same draft → review → post flow.

Not doing affiliate work? Skip this section and continue with Content & media in the app map above.

The top of Affiliate Copilot with TikTok Shop connectFull size
Start here. TikTok Shop API sync is the first card and can connect before a Shopee ID is saved. The amber notice means the rest of the affiliate workspace — imports, product actions and tracking links — stays locked until you save your own Shopee Affiliate ID.
Use after app approval

TikTok Shop — sync through the official API

Prepare

  • The InfluDNA TikTok Shop app has been approved with creator.affiliate_collaboration.read.
  • You have a TikTok Shop Creator account that can authorize the app.
  • To continue from synced products into links and drafts in the current workspace, save your own Shopee Affiliate ID in the account card below.

Do this

  1. 1Connect TikTok Shop Opens TikTok's own consent page. InfluDNA never asks for your TikTok password.
  2. 2Authorize Approve the product-collaboration read scope, then TikTok returns you to Affiliate Copilot.
  3. 3Sync products Imports the current batch. If the card says more products are available, press Sync next batch.
You should see: Products appear in the Products section with price, sales and commission data from TikTok Shop.
Open TikTok sync
Works without Open API

Shopee — import your official Product Feed

Prepare

  • A Shopee Affiliate account and its numeric Affiliate ID.
  • A Product Feed CSV downloaded from Shopee Affiliate → Creative → Product Feed.

Do this

  1. 1Shopee affiliate account Enter your own numeric ID and choose the channel you normally post to, then save.
  2. 2Upload CSV Choose the Product Feed file you just downloaded. Do not upload an order or commission report here.
  3. 3Check the import summary Imported and updated rows are usable; skipped rows include a reason so you can correct the source file.
You should see: Products appear in the Products section. Search, sort, create a tracked link, then draft content.

Shopee Open API is not required here

Do not wait for an App ID or Secret. The official CSV route works today. Open API approval is a separate application for high-volume affiliates.
Open Shopee import
Shopee Affiliate settings fieldsFull size
The Shopee Affiliate ID must be your own numeric ID. The channel is only the default tag used when InfluDNA creates links; you can change it per link later.
Current official Shopee Product Feed import panelFull size
Use the card marked Official. In this screenshot the controls are pale because no Shopee Affiliate ID has been saved yet. Save the ID in the card above; the upload then becomes available.

What each field means — do not guess

Shopee Affiliate ID

Enter: Your own numeric ID from the Shopee Affiliate portal.

Why: It is embedded in tracking links so Shopee can attribute commission to you.

Default channel

Enter: Where you normally share affiliate content, such as Shopee Video or TikTok.

Why: It pre-fills link attribution and reporting; it does not publish anything by itself.

Network sub-id parameter (optional)

Enter: Only the parameter name your affiliate network documents, commonly aff_sub. Leave blank for direct Shopee files.

Why: It lets a third-party network report which angle or post earned the order. A wrong name loses attribution.

TikTok Shop Connect

Enter: Nothing. Press the button and authorize on TikTok's page.

Why: Creators never paste an App Key or App Secret here. Those credentials are managed by the InfluDNA administrator.

The complete route — what each page receives and produces

Before importing or creating links

Save your Shopee affiliate ID

Open Affiliate Copilot and scroll to “Shopee affiliate account”. It stays expanded until you fill it in. Type the numeric ID from your own Shopee Affiliate account, pick the channel you normally post to, and pressSave settings.

Until that is saved, imports, product actions and tracking links are disabled and an amber line at the top says Set your Shopee affiliate ID first — every link needs it. The TikTok Shop Connect button is the exception: it can open TikTok authorization before this ID exists, but the downstream workspace remains locked.

Affiliate daily loop — detailed walkthrough

Eight steps, in this order. Follow them once and you will have taken one product from a spreadsheet row to something a platform can carry.

1

Import your products

Affiliate Copilot → Import products

Open

InfluDNA does not browse Shopee for you. You bring the product list, and the routes are ordered by how little each one touches anyone else's system.

The Import products panelFull size
This install has three routes switched on. A route an admin has switched off does not appear at all — if you see fewer cards than this, that is the deployment, not a fault.

Do this

  1. 1Upload CSV The safest route, badged “Official”. In the Shopee Affiliate portal go to Creative → Product Feed, download the CSV, then upload it here. It is your own data and nothing is scraped.
  2. 2Import pasted text Or paste rows straight out of a spreadsheet, or one product link per line. Only the text you pasted is read — no account is touched. Up to 512KB per paste.
  3. 3Upload file Or the export file from an affiliate network you belong to — Involve Asia, Accesstrade. CSV or TSV, up to 5MB.
  4. 4A green toast counts what happened: how many rows were imported and how many updated. Rows that could not be read are listed underneath with their line number and the reason, and they are skipped rather than guessed at.

There is a fourth and a fifth route, and they carry real risk

Pasting one product link makes our server open that page and read what it states — often not the commission, so it asks you to type the rate off your own portal. The browser extension reads a Shopee page you already have open, and that goes against Shopee's affiliate terms. Both are hidden unless an admin turned them on, and the extension additionally needs your own recorded consent: a dialog that states, in full, that Shopee's stated penalty is termination of the affiliate account and forfeiture of unpaid commission, and that the risk sits with your account, not with InfluDNA. That dialog is real. Read it, do not click through it.

When it refuses

  • A row has no product linkRow 14: Missing product link
  • An admin closed that route while your page was openThe card removes itself and the panel re-reads its state — it is a change of state, not a fault.
2

Search the whole market first

Affiliate Copilot → Market-wide index

Open

The step above imports products you already decided to sell. This one is for deciding: it indexes Shopee's full Product Feed on your own machine and hands back a short list of things worth going and fetching a link for.

The market index card, never builtFull size
The empty state names the exact folder it looked in. Every refusal on this card carries that path, because “no file” and “no folder configured” have different fixes.
The special-commission tab, refusingFull size
One tab is marked with a dashed border before you click it, and clicking puts the reason where the list would have been. The Product Feed states no commission in any column, so nothing in the file can honestly be filed under this heading.

Do this

  1. 1Put the file in the folder Download the full Product Feed from the Shopee Affiliate portal and drop the .csv into the _catalogue folder the card names. Do not put it in the folder above — the watcher there refuses anything over 32MB, and this file is measured in gigabytes.
  2. 2Build index Press once. It takes a few minutes and runs in the background, so you can leave the page. Pressing again while it runs shows you the build that is already running — it does not start a second one, because two builds at once would destroy each other's work.
  3. 3Find products worth a look Pick a Shopee tab, optionally set a rating floor, a minimum sales figure or a price band, and press. Each row ends in “go and fetch the link” — which is the only thing a row here can mean.
  • The file never leaves your machine. Nothing here calls Shopee, and no page is scraped — it is the export you downloaded yourself, read from disk.
  • Two ages are printed side by side: how old the export file is, and how long ago we read it. The gap between them is the number that matters — it is what catches an index rebuilt today from last month's download.
  • No row on this card shows an earnings figure, and that is structural rather than an oversight: the Product Feed carries no commission column at all, so any baht amount here would have been invented.

When it refuses

  • The special-commission tabIt refuses instead of listing anything, and says why: that tab is defined by a commission this file does not carry. Showing other products under that heading would be the lie.
  • Nothing in the folderIt names the folder it looked in, in full, so you can check the path rather than guess it.
  • A build crashed part-wayIt is marked failed after fifteen minutes and the button comes back. The previous index keeps serving in the meantime — a half-built one is never shown.
3

Pick a product

Affiliate Copilot → Products

Open

Every card carries the numbers your feed gave it, plus two things the app worked out: a commission estimate and, when the category is regulated, a compliance chip.

Product cards with commission and compliance chipsFull size
Four of these ten are regulated: the red chips name the licence the category needs. The grey chip beside them is a guess at the audience, and it says so — “AI hypothesis”. Read the commission chip carefully too: “as stated” means the figure came out of your file, “estimated” means we worked it out from the rate.

Do this

  1. 1Create link Builds a short tracking link with your affiliate ID, optionally tagged with a campaign name and a channel. It never uses anyone else's ID, and this platform takes no cut.
  2. 2Draft content Opens the dialog in step 3. This is the main path.
  3. 3Open draft Appears only once that product already has an unsubmitted draft. It reopens it exactly as you left it.
  • Price, star rating and units sold come straight from the row you imported. Missing values show a dash, never a zero.
  • “Est. commission / order” is the feed's own commission rate applied to the price. It is an estimate of one order, not a forecast of income.
  • The red or amber chip names the licence the category needs — for example “Supplement — ad licence (ฆอ.) required before publishing”. It is a warning to you; the gate in the next step is what actually blocks.
  • Sort by Best value, Est. commission, Price or Sales. Search filters as you type.
4

The machine proposes, you choose

Affiliate Copilot → Waiting for your decision

Open

Picking a product by hand works and always will. This card is the other route: today's trends and today's headlines are read against your catalogue, and what comes back is a ranked list with an argument beside each row — and nothing is produced from any of it until you press a button.

The shortlist waiting for a decisionFull size
Five cards, three states. Rank 1 was taken, rank 2 was turned down — both stay on screen, dimmed, with an undo. Ranks 3–5 still have their two buttons. The reasoning is on the left; what it cited is on the right.

Do this

  1. 1Accept Accepting is an instruction, not a bookmark. The next run of your daily loop writes a draft for that product before it ranks anything of its own, and it does that once — an acceptance that has produced a draft is marked as spent, so five acceptances give five different products rather than the same one five times.
  2. 2Reject Turning something down is kept, not thrown away. Refuse the same product on three separate rounds and it stops being proposed to you — this is the only way the system learns your taste, because orders only teach it about things you already sold.
  3. 3Undo this decision A decided card stays on screen, dimmed, with this underneath it. Pressing it puts the card back to undecided — which is also how you lift a suppression: take one of the three refusals back and the product is proposable again.
  4. 4Ask for a new list Raises a round by hand instead of waiting for the daily one. The same rules apply to it.
  • The model never writes a number. It returns a product id, a rank, prose and the ids of the things it cited — every price, commission and sales figure on these cards is re-read from your own imported file afterwards. That is a wall in the code, not an instruction in a prompt.
  • What it cited sits on the right of every card, and the trend word is checked against the product name in front of you: “matches the word …” when it really appears, and “no word in this search appears in the product name” when it does not. Rank 2 in the picture is the second case.
  • A headline is a weaker link than a trend word, and the layout says so by keeping the reasoning next to the headline it claims. “Floods in the north” does not mean raincoats will sell; it means a model thinks so, and you are the one who decides whether that holds.
  • Every card is labelled an AI hypothesis, because that is what it is. The only thing in this app that answers “did this actually make money” is the earnings report, built from real orders you imported.

Why there is a human here at all

The expensive decision in affiliate work is what to sell today, not whether the caption is nicely worded. It is also the one Shopee's terms care about: §8.5 forbids mass low-effort content, and a loop that picked and published on its own would be producing exactly that, every day, on your account. The button is what keeps “run this daily” from being a risk you carry.

When it refuses

  • The model puts a figure in its reasoningThat proposal is dropped whole and the next-ranked product takes the slot. Nothing is edited to fit — between a reworded argument and no argument, the card shows no argument.
  • No AI provider is configured on this installThe list still appears, ordered by the app's own scoring, with every card reading “nobody argued for this one”. It is a complete, honest round — just one with no reasoning in it.
5

Draft the caption, and watch the clip

Affiliate Copilot → Draft content

Open

This dialog is the whole product. It is the moment you read what the AI wrote, watch what will actually be posted, and then take responsibility for it. Work down the screen in order.

The draft dialog, openFull size
Read this from the top down — the order on screen is the order the decision is made in. Caption, compliance chip, then the clip, and the AI-disclosure tick last, still unticked.

Do this

  1. 1Read the caption. The AI writes only from that product's own facts — the name, price, rating and units sold in your feed. It does not invent benefits it was not given.
  2. 2Check the compliance chip if there is one, and any amber duplicate warning. A draft too close to a recent one is flagged, because repetitive posts risk account penalties.
  3. 3Make a clip If there is no clip yet, press this. Rendering happens on the server; the card shows Queued, then Rendering, then Ready with the real length and file size. If a clip already exists it plays right there.
  4. 4Watch it. The line above the player says why: this is what goes out with your name on it. The caption is not the thing people will see first — the clip is.
  5. 5I will enable Shopee's AI-content disclosure toggle when posting this Tick it. This is not a formality and it is not optional — Submit refuses without it. You are promising to turn on the platform's own AI-content label when you post, which InfluDNA cannot do for you.
  6. 6Submit for approval Sends it to the review queue. Closing the dialog instead loses nothing — “Open draft” on the same product card brings it back with your tick where you left it.

The compliance gate runs twice, and the first run is before the AI writes anything

The first pass reads the product's fact sheet and can refuse to let a caption be generated at all. The second runs again over the finished text when you submit, and a third time at the moment anything is actually published. Passing once is not a permanent pass: if you edit the copy afterwards, it is checked again.

If the clip is still images with a voice-over, TikTok is a problem

The advisory shown on the clip is the real policy: TikTok Thailand treats still images with a voice-over as Non-Interactive Content and restricts it. The same clip is fine on Shopee Video and YouTube Shorts. Film something, or add real movement, before posting it to TikTok.

When it refuses

  • You press Submit without tickingConfirm the AI-disclosure step before submitting
  • The compliance gate refusesBlocked by compliance gate: — then one line per finding, in Thai, each with the policy id it came from
  • The server cannot render videoThe Make a clip button disables itself and prints the machine's own reason — for example “There is no Thai font on this server, so subtitles would come out as empty boxes.”
  • You have not saved your affiliate IDSet your Shopee affiliate ID first — every link needs it.
6

Approve it — a person, not a rule

Approvals

Open

Nothing reaches a platform without passing through here. There is no setting that skips it, and turning on automatic posting does not skip it either — it only changes who presses send afterwards.

The approval queueFull size
Three tabs: pending, approved, rejected. Each card carries the whole caption — it scrolls rather than being cut off, because you are putting your name on all of it.

Do this

  1. 1Open the Pending tab. Each card shows the full caption in a scrolling box — not three clipped lines — so you can actually read the disclosure line, the claims and the link you are approving.
  2. 2Watch the clip on the card. If the item has none yet, the Make a clip button is here too — approving text alone means approving a video you have never seen.
  3. 3Read the compliance findings if any are listed. Each one carries its severity — must or should — its category, and an explanation written out in full.
  4. 4Approve Or Reject. The optional note goes to the creator, and the decision, the reviewer and the time are kept on record.

Scheduling is not approving

The publish page will happily let you schedule an item that has not been approved. It sits there showing “Scheduled”, and the problem only surfaces at send time, as the refusal above. Approve first, then schedule.

When it refuses

  • Something is published before it is approvedThis item has not been approved yet, so nothing was sent.
7

Package it, or publish it

Affiliate Copilot → Ready to post · Publishing Hub

Open

Two different endings, and which one you get depends on the platform. InfluDNA posts for real to YouTube and LINE only. Everywhere else it hands you a package and you post it yourself.

The Ready to post panel, emptyFull size
This is the empty state — packages only appear here after something is approved. The amber line is the standing answer about TikTok, not a temporary notice.
The publishing hubFull size
Two cards on this page are both headed “Connected platforms”. The one at the top left only writes a handle down for your own reference; its own note says so. The real one is below it.

Do this

  1. 1Copy caption For TikTok, Instagram, Facebook and X: approved affiliate drafts appear under “Ready to post” with the caption, the short link, the clip and a three-item checklist. Copy the caption, copy the link, download the .mp4.
  2. 2I posted this After you have posted it by hand. It records your own claim and labels it as one — “Self-reported — not platform data”. No view or reach number appears, because the platform never told us any.
  3. 3Connect For YouTube: on the lower “Connected platforms” card, press Connect on the YouTube row. You go to Google's consent screen and come back to the publish page. There is no confirmation message — check the row now says Connected.
  4. 4Schedule Pick the approved item under Content, tick YouTube under Target platforms, optionally set a time, then Schedule. Even an immediate send has to be scheduled first — “Publish now” acts on a row, so the row has to exist.
  5. 5Publish now On the row that appears under Posts. For YouTube this really uploads. For TikTok, Instagram, Facebook and X it does not — see the warning below.

Every YouTube upload lands as Private

Approving content is not consent to be seen. InfluDNA uploads with visibility set to private, every time, and there is no control anywhere in the app to change that — you go to YouTube and make it public yourself when you are ready. Every upload is also flagged to YouTube as containing synthetic media, which YouTube requires for AI-made video.

A LINE post is not a post

LINE VOOM has no posting API at all, so nothing InfluDNA does will ever appear on a LINE feed. What the LINE card sends is a message to the people who added your Official Account. It spends one message of your monthly quota per recipient — 300 free per month in Thailand, then a paid plan — and it cannot be recalled. The remaining count is shown next to the audience picker before you send; there is no second “are you sure”, because the number is the confirmation. You must choose one: every follower, or one LINE user ID. Leaving both blank does not mean everyone, and the button stays disabled and says so.

“Publish now” on TikTok, Instagram, Facebook or X posts nothing

The page still lets you pick those platforms and press it. The row flips to Published and shows view and like counts. Those numbers are invented, and the amber line under them says so: “Simulated numbers — this post was never sent anywhere.” Use the package instead. TikTok specifically: its Content Sharing Guidelines require a person to complete every post, and its API cannot attach a product anchor — the link your commission depends on — so InfluDNA will not post there at all.

Automatic posting, if you want it

Off until you switch it on, per account. It only ever sends items you already approved, and the compliance check runs again at the moment each one goes out. Switching it off is always allowed, on every platform, in every configuration.

When it refuses

  • The item has no rendered clip and the target is YouTubeThere is no finished video for this post yet.
  • No account is connectedNo account is connected for this platform.
  • An admin has not added the platform's credentialsThis platform's credentials have not been added by an admin yet.
  • Real publishing is off for the whole serverReal publishing is switched off for this server, so nothing was sent.
  • The connection expiredThe connection to this account has expired — connect it again.
  • Google's daily quota is used upThe platform's quota for today is used up. It resets tomorrow.
8

Watch the numbers, and know which ones are real

Affiliate Copilot → Performance · Analytics · Dashboard

Open

Three screens show numbers and they do not all mean the same thing. This is the part of the app most likely to be quoted at somebody, so it is worth being precise.

The analytics dashboardFull size
Content items and AI spend are counted from real rows. Reach, engagement and revenue are computed from simulated posts only — read the section below before you quote any of them.
The dashboardFull size
Counts and recent lists, nothing estimated. Every tile here is a plain count of your own rows.
  • Affiliate → Performance is the only place with real commission data, and it is real because you uploaded it. Press “Import conversion report” with the export from your own Shopee Affiliate portal. Nothing is fetched from Shopee on your behalf.
  • That panel always shows the settlement lag: commission takes roughly two months to validate on Shopee, and pending is not money in hand. When orders cannot be traced back to a link it says so too — attribution has blind spots and hiding them would be the lie.
  • On Analytics, “Content items” and “AI spend” are counted from real rows. The legacy “Total reach”, “Engagement” and “Est. revenue” estimate still uses simulated posts only. Real platform metrics, when refreshed, are kept separate so a YouTube view is not priced as if it were one of the demo numbers.
  • A post that really went out starts with no numbers and says why. Press “Refresh metrics” after the right account and permissions exist; until then an empty metric is honesty, not a bug.
  • The Dashboard's “Published” and the Analytics page's “Published posts” will disagree, by design: the first counts content items that reached published, the second counts every scheduled, pending, failed and published post row. Neither label explains the difference, so this one does.

Section 8 · Training & certification

Teach something, and be able to prove it

About 30 minutes for a first course

Six steps. Follow them once and somebody will hold a certificate a stranger can check — and you will know exactly which parts of that claim the product will stand behind and which it refuses to.

Read this before you plan anything as a live

A public live is not statutory training and no setting can make it one. If what you need is a record a registrar can read, the path is a course in the Learning Studio — or a live turned into a micro-course afterwards. Step 6 below quotes the announcement's four requirements and why a broadcast fails all of them.
Works on a fresh install

A document you already have → a course somebody can be certified on

Prepare

  • A markdown file whose “##” headings are modules and “###” headings are lessons.
  • At least one question with a correct answer, or the course cannot be published.
  • Nothing from an administrator. Authoring, publishing, the player and certificates all work with no setting switched on.

Do this

  1. 1Import markdown Read the toast: it counts modules, lessons and lesson rows separately, because long sections were sliced.
  2. 2Add question → Save the set Then read the announcement checklist beside the course before you go near Publish.
  3. 3Publish The structure freezes here. Questions stay correctable; lessons do not.
  4. 4Enrol and open the player Sit it yourself once. You will meet every refusal the announcement asks for, which is faster than reading about them.
You should see: A pass produces a certificate with a link and a QR code that a stranger can check without an account — and that shows no score.
Open the Learning Studio
Needs an admin for YouTube only

A live → the micro-course that is the part that gets recorded

Prepare

  • A run of show written before you go live — once a session starts, its wording is fixed.
  • At least one moment with a correct answer, or the micro-course afterwards cannot be published.
  • OBS on the machine you are streaming from, if you want the overlay on the video.

Do this

  1. 1Create draft → Run of show Write the questions as you will say them, and set each answer window — thirty seconds is the floor.
  2. 2Go live The join code and its QR appear only now. Put the QR on screen — the Companion is the only answer channel.
  3. 3Open · Close · Reveal Three presses per moment. The answer key does not leave the server until the third.
  4. 4End session → Build the draft course Ending is what revokes every link. Then build the course — that is the thing a registrar can read.
You should see: A draft micro-course in the Learning Studio, in the session's language, carrying nobody's answers. Nothing in the live itself is a training record and no setting can make it one.
Open the Live Classroom

The complete route — what each page receives and produces

1

Get the material in

Learning Studio → Start a course

Open

Four ways in, and all four land in the same place: a draft. Nothing on this screen publishes anything, and that is deliberate — publishing is a decision a person makes with the compliance checklist in front of them.

The Learning Studio, with one published courseFull size
Two halves on one screen, and they are different products for the same person: the courses this workspace authored, and the courses this person is taking. The numbers beside them are different kinds of fact, which is why they are never in one list.

Do this

  1. 1Create Type a course title and press. You get an empty draft to write lessons into.
  2. 2Import markdown A document you already have. Every “##” heading becomes a module and every “###” a lesson. The toast reports two numbers, not one — “Imported 4 modules and 18 lessons, written as 23 lesson rows” — because a section longer than one render is sliced, and reporting a single figure would hide the operation the importer just performed.
  3. 3Create a draft from it In the scaffold card. A course outline somebody already worked out, already cut into short lessons. It still arrives as a draft with the compliance check still in front of publishing.
  4. 4Install On the Knowledge packs page. A pack is a file in this repository with a version and a list of sources; installing one writes concepts and questions into a new draft course. It is off unless an admin switched it on.
  • A lesson has a length cap, and a topic longer than it becomes more lessons — never one longer lesson. The editor says so under the field and the server refuses the other way round.
  • Each lesson carries a required coverage — how far through the verified position has to reach before it counts as finished. Leave it blank and the install's own setting applies.
  • A pack is in one language per version and is never translated automatically — “a wrong idea reworded is a different wrong idea”. A pack whose language differs from the course refuses rather than converts.

When it refuses

  • A lesson is longer than one render allows“This lesson is longer than one render allows. Split the topic into shorter lessons rather than lengthening this one.”
  • Installing packs is switched off“Installing knowledge packs is switched off for this install.” An owner turns it on in the settings; it is off by default, and no migration turns it on for you.
2

Write the questions, because a course that measures nobody cannot be published

Learning Studio → a course → Questions

Open

This is the step people skip and then meet as a 422 after they have written a whole course. Four question kinds, an answer key marked on screen, and one save that replaces the entire set.

The announcement checklist, returning “structurally short”Full size
Nine items, each read off what this course and this install actually do, and each saying where its answer came from. The verdict is “structurally short”, never “compliant” — the note above it says whether the course satisfies the announcement is a legal question this panel does not answer. The amber line says what would fix it and rules out the shortcut in the same sentence.

Do this

  1. 1Add question Choose the kind — One answer, Several answers, True or false, Put in order — write the stem, then mark the key. “Source” is where in the material it came from; write it, because it is what a reviewer reads a year from now.
  2. 2Save the set Saving replaces the whole set and creates a new assessment version. Attempts already marked keep the version they were marked against — nobody's score changes retroactively because a question was corrected.
  3. 3Announcement checklist The card beside the course reads the nine items of the announcement of ๒๔ ม.ค. ๒๕๖๘ off what this course and this install actually do, and marks each Met or Not met with where the answer came from: enforced by the system itself, read from a setting, or depends on what has been authored.
  • The checklist's verdict is Structurally ready or Structurally short, never “compliant”. Its own line says why: “Whether this course satisfies the announcement is a legal question, not one this panel answers. The employer is the filer, and the reading here should be checked by somebody qualified.”
  • If the course is short of the hours floor, the card says how to get there and rules out the shortcut in the same sentence: about N more lessons of the capped length — “Splitting the material further is the way there — a single longer lesson is not.”
  • If this install's pass mark differs from the announcement's, the card prints both figures side by side and calls it a divergence rather than quietly running the lower one.
  • A question drafted by a model carries “Drafted by a model and not confirmed by anybody yet. Check the answer before publishing.” The label is on the question, not on the course, so it does not disappear when the course is edited around it.

When it refuses

  • Publishing a course with no questions“A course with no questions cannot be published. Training that counts has to measure each learner.” This is the correct behaviour, not a bug to route around.
  • An answer key the marker cannot grade“This answer key is not a shape the marker can grade. Check the options and the correct answer.” The editor also blocks the four common cases before you can save: no stem, fewer than two options, an empty option, and no option marked correct.
  • Somebody edits the set while a learner is answering“The questions were revised while you were answering. Reload to take the current version.” Their half-finished attempt is not marked against a key it never saw.
3

Publish, and know what publishing freezes

Learning Studio → a course → Publish

Open

One button, and it is not reversible in the way people expect. Publishing freezes the structure so that a record made against this course keeps meaning what it meant on the day it was made.

Do this

  1. 1Publish The toast is the warning: “Published. The structure is frozen from here.” Lessons can no longer be added, removed or reordered on this version.
  2. 2Questions can still be corrected afterwards. A correction writes a new assessment version rather than rewriting anybody's marked attempt — which is exactly why it is still allowed.
  • Concepts can be tagged onto questions on a published course, and that is safe on purpose: the answer key is untouched and the assessment version does not move, so an attempt already marked stays marked against exactly the same key.
  • Nothing about a course changes language after it is published. “A course is taught in one language per version. Translating it means a new version with its own review.”

When it refuses

  • Editing lessons on a published course“This course is published. Publish freezes the structure so a learner's record keeps meaning what it meant.”
  • Enrolling somebody on a draft“This course is still a draft, so nobody can be enrolled on it yet.”
4

Sit it — on a player that cannot be skipped or sped up

Learning Studio → Enrol and open the player

Open

This is the only screen in this app whose behaviour is written down in a government announcement, and the interface is built so that it never offers a control the announcement forbids. The server is the thing that actually decides; the player's job is to not contradict it.

The player as a learner meets itFull size
Participation at 0% and “0 seconds verified by the server” — two figures with two labels that are never averaged. The card in the middle is not a failed screenshot: on this build the learner side of the API has no route that lists a course's lessons, so the player says so and tells you to open a lesson from the studio instead.

Do this

  1. 1Enrol and open the player On a published course. You are enrolled on one version of it, and that version is what your record will name.
  2. 2Play / Pause Those two, and a seek bar that only reaches as far as the server has verified. There is no speed control here, by design — and setting the rate from the browser's own menu, an extension or the console is put back to normal by a handler, because those three routes are how it is actually done.
  • Two numbers sit side by side and are never averaged: “Participation 62% · 148s verified” is what you did, and “Best score 80%” is what you knew. Watching to the end is not knowing, and the two are kept in separate figures with separate labels for exactly that reason.
  • The dashed part of the timeline is not a hidden handle — it is a disabled region. It opens as the server verifies time you actually spend, and the bar draws what was credited rather than where the video element happens to be.
  • Resume comes from the server, never from anything this browser remembered. A remembered position is precisely the number somebody forging one wants trusted.
  • Finishing a lesson needs two conditions at once and the screen prints both: the verified position has to reach the required coverage, and the verified watch time has to reach its own figure. One without the other does not finish it.

When it refuses

  • Dragging past the verified point“You cannot move past the verified point. Skipping ahead is what the announcement asks this system to prevent.” A seek that gets past it anyway is refused and written to the log with an anomaly — blocked and auditable, not merely blocked.
  • Speeding the video up“Playback speed was set back to normal. The announcement asks this system to prevent speeding up, and verified time is counted by the server's own clock in any case.”
  • A tab left open all afternoon“The gap since the last signal was too long to count in full. A tab left open is not time spent learning.”
  • A second tab on the same lesson“This came from an older tab, so it counted nothing. Carry on in the tab you are watching in.”
  • You open the player and there is no lesson in it“The learner side of the API has no route that lists a course's lessons yet, so this page cannot open one on its own. Open a lesson from the studio, or ask for the lesson list to be added to the enrolment record.” This is the state a reader who enrols and clicks straight through lands in, so expect it: go back to the studio, open the course, and start the lesson from there.
  • The lesson's video will not load“Nothing you do here will be counted until it plays, so tell whoever set the course up rather than waiting it out.” Sitting in front of a broken player earns nothing, and the screen says so instead of letting somebody find out at the end.
5

Pass it, and hand somebody a certificate they can check themselves

The player → Assessment, then the certificate card

Open

The assessment is marked on the server against the answer key — the key is never in the page. What comes out the other end is a link and a QR code that anybody can resolve without an account.

Do this

  1. 1Submit answers The card prints the pass mark before you start and how many attempts are left. “Passed with 85%.” or “Scored 60%, which is below the pass mark.”
  2. 2Copy link On the certificate card, beside a QR code of the same address. “Anyone can check this certificate at the link below without an account. The check is resolved on the server, so a revoked certificate stops verifying immediately.”
  • The public check shows the course, the version, the issue date and the holder — and no score and no identifier. Its own line says why: “Another person's score is their own personal data, so it is not published here.”
  • A revoked certificate reads “This certificate has been revoked. It was issued and has since been withdrawn, so it should not be relied on.” — the whole sentence, rather than a code that quietly fails to match.
  • Records are kept for at least two years and cannot be deleted before that: “These records are still inside the retention period the announcement requires, so they cannot be deleted yet.” The retention field on the admin screen cannot be set below 730 days.

When it refuses

  • Every attempt used“You have used every attempt allowed for this assessment.”
  • A code that matches nothing“This code does not match a certificate.”
6

Run it live — and the four things a broadcast fails

Live Classroom → Control Room

Open

A live is the fifth step of this job rather than a job of its own, because the thing a live produces is the micro-course afterwards. Read the amber line at the top of every live screen before you plan anything around it.

The Control Room during a running sessionFull size
The amber line at the top is the constant, not a notice: a public live is not statutory training and no row in the settings can switch that sentence off. Below it, the run of show with its three separate presses, the join code and its QR — which only exist once the session has started — and the producer's panic button.

Do this

  1. 1Create draft A title and a “Taught in” language. That language is the language the live is conducted in, not your interface language: your own chrome stays in your language, and the questions, the overlay and the micro-course follow the session's. Nothing is translated between them.
  2. 2Run of show → Add a moment Question, poll, pulse or note. Write the stem as you will say it, add the options, mark the correct one and set the answer window. Do this before you go live — once a session starts its run of show is fixed, because people answered under the wording that was on the screen.
  3. 3Go live The join code appears on the stage card only after this. Put its QR on screen; the audience opens the Companion and answers there.
  4. 4Open · Close · Reveal Three separate presses, in that order. Opening starts the clock on the server. Closing stops answers with no grace — a host who closes early closes it for everybody. Revealing is what lets each viewer see their own result; the correct answer never leaves the server until you press it.
  5. 5New 16x9 / 9x16 link In the overlay card, then paste it into an OBS Browser Source. One address per layout, so a leaked vertical link cannot black out the horizontal stream. It is shown once and stored nowhere — lose it and mint another.
  6. 6Blank the overlays The panic button. It clears every card off the stream at once without ending the session.
  7. 7End session “Ending the session is what revokes every overlay link, stops every participant link working and drops the chat tally. Closing OBS does none of those.”
  • The audience answers on the Companion and nowhere else. A viewer who scans the QR chooses once, in front of you, how they are here — without a name, with a nickname, or with their account — and it cannot be changed afterwards. Signing in halfway through creates a second participant and relinks nothing: somebody who answered anonymously did so on the understanding nobody would know it was them.
  • Everybody gets one answer, and the deadline is the host's clock. “The deadline is the host's clock, not your device's.” Nothing is scored on speed and there is no leaderboard, because two viewers of one stream were measured 52 seconds apart in the field — a faster answer measures bandwidth.
  • TikTok's card has no broadcast-id field anywhere on it, and that is not an omission: “TikTok publishes no permission for reading a live chat, so no app has that ability.” Simulcast the same broadcast, put the QR on the vertical overlay, and the answers come back here.
  • OBS is connected from this browser to OBS on this machine. “This app's server never sees your OBS password and has nowhere to store one.” The password is kept in this tab and nowhere else; close the tab and it is gone.

A public live is not statutory training, and no setting can make it one

The banner on every live screen says it in full: “A public live is not statutory training. Nothing here is written to a training record, and no hour spent here can be filed. To produce a record, turn this live into a micro-course below.” ประกาศคณะกรรมการส่งเสริมการพัฒนาฝีมือแรงงาน ๒๔ ม.ค. ๒๕๖๘ ข้อ ๕(๑)(ว)① asks four things of a distance-learning course, and a broadcast fails every one: no more than fifty people per cohort; every attendee identifying themselves before the session; two-way picture and sound throughout; and the employer keeping a recording of every trainee for at least two years. A live built for fifty viewers is a live that failed, a public audience that has to identify itself is no longer public, and viewers of a broadcast have neither camera nor microphone by definition. So the banner takes no prop that can hide it — not “compact”, not “dismissed” — and the two flags behind it ride on every session payload as constants: no row in the live settings can switch either off.

A chat tally is engagement, never knowledge — and the two blocks are never added together

The Audience pulse shows two blocks with two bases and refuses to sum them. “Answered here” is recorded on this app's own channel, one answer per person, and there is a row on disk behind it. “Typed in the chat” is “counted in this server's memory while the session runs. There is no table under it, and it is gone when the session ends.” The label beside it is the one sentence that matters: “Counted from the public chat: self-selected, open to bots and to one person on several accounts, and copyable from the timeline. It measures engagement, not learning.” That label cannot be switched off — an admin who tries gets a refusal with its own name rather than a switch that works. And there is no chat column in the report after the live, permanently: YouTube publishes no way to read a chat once the event has ended, and this app's own tally was dropped when the session ended. What was not counted at the time cannot be counted afterwards.

A figure below the group threshold is withheld, not zero — and the screen says which

Every figure on a live report, on the overlay and on the concept graph passes through one suppression rule with one threshold, and a suppressed cell carries no count key at all — because zero is a number and it is the identifying one. The reader is told which: “Too few learners behind this to show a figure. This is not a zero and not an empty result — it is a number being withheld.” On the overlay a suppressed bucket is drawn as a sentence rather than an empty bar, because an empty bar in a video frame says “nobody picked C” to everybody watching, about a room the server refused to describe at all. There is exactly one threshold in this product, it lives in the learning settings, and the live screen reads that one — two would be safe only as far as the lower of them, and no reader of a suppressed cell could tell which one hid it.

The way through: turn the live into a micro-course

A screen that only refuses is a screen people route around, so the button that produces a record sits on the same page as the banner that says a live is not one. Press “Build the draft course” after the session has ended — not during it. The questions you asked become a draft course in the Learning Studio, sliced at the render cap, in the session's language, with nobody's answers travelling with it: a course is content, not a record. Nothing is published; a person opens it and decides. And if the live had no question with a correct answer, the card says so before the button rather than after: the course it would make cannot be published, because a curriculum that cannot measure one person is not training that counts.

When it refuses

  • An answer window under thirty seconds“That window is shorter than the 30-second floor, which is a measurement rather than a setting.” The floor is in code and no admin can lower it: two viewers of one broadcast were measured 2.5–4.3 seconds apart in a lab and 52 seconds apart in the field.
  • A join code that does not work“This session link is no longer valid.” — the same answer for “no such code”, “that session has not started” and “that session is full”, deliberately, because the differences between them are exactly what lets somebody sieve the real join codes out of the guesses.
  • Answering twice“You have already answered this one. Everybody gets a single answer.”
  • Building the micro-course during the live“A micro-course is built after the live, not during it.”
  • YouTube for live sessions is switched off“YouTube for live sessions is switched off on this install. An administrator can turn it on.” It is off by default, and so is reading the chat — two switches rather than one, so an operator meeting a 403 mid-broadcast can turn off ingest and let the live carry on.

Section 9 · Ideas, brand & sharing

One brief into a set of posts

About 10 minutes to a first set

Six steps, ordered by when the money leaves: the brand kit first because it is free and changes everything after it, and the clip last because it is the only step you cannot undo by editing a line.

Free until the grid button

One brief → forty-five gate-checked ideas

Prepare

  • A topic. Tone and goal are optional and can still change at the next step.
  • Credits for the grid and for the cells you choose to produce. The two prices are on the two buttons.
  • Optionally a brand kit first — it costs nothing and it changes every picture after it.

Do this

  1. 1Propose angles Free. Five angles is the ceiling, because five times nine openings is already forty-five ideas.
  2. 2Build the grid · N credits The gate reads every cell before you see it, and each cell shows what it found.
  3. 3Choose → Produce · N credits Credits are taken only for the cells that come out. Drafts land in your content library; nothing is posted.
You should see: A grid you can read at a glance, a printable compliance report over the whole set, and drafts for only the ideas you liked.
Open the Idea Matrix
No account, nothing stored

A caption you are about to post → a reading of the Thai advertising rules

Prepare

  • Nothing. The free checker is a public page — but an admin has to have opened it on this install.

Do this

  1. 1Paste the caption Ten checks a day from one connection. Your text is read, answered and dropped; only a count is kept.
  2. 2Check this caption Read the risk level, then the advice line under each finding — it says what to change, not what rule it broke.
You should see: The strictest possible reading of the rulebook, and nothing is blocked because nothing is being posted. The same rulebook runs inside the product, where an owner chooses whether a warning stops a post.
Open the free checker

The complete route — what each page receives and produces

1

Set the look first — and learn which half of it is a rule

Brand kit

Open

This page is split down the middle on purpose, and the split is the thing to read. One half is drawn by this app pixel by pixel and obeys you exactly. The other half is a sentence handed to an image model, which may do as it likes with it.

The brand kit, with a palette savedFull size
Read the line under Name and tagline before anything else: neither is sent to the image model, because asking a model to letter a name gives back a mangled wordmark. Further down, the page splits into what is applied exactly and what is only steered — and says which of your settings is in which half.

Do this

  1. 1Palette — five slots Primary, secondary, accent, ink (what text is written in) and surface (what text sits on). Leave any of them empty; a half-filled palette is a normal thing to save.
  2. 2Upload a logo Then set the corner, the width, the opacity and the distance from the edge. The logo is laid over a finished frame exactly where you put it — “It is never drawn by a model and never sent to one.”
  3. 3Style words / Words to keep out One per line. These reach the image model as one sentence: “They push it; they do not bind it.” A line that looks like a file path or a link is dropped before the sentence is built.
  4. 4Produce a sample The one control on this page worth pressing before you trust anything else. It asks the renderer that actually makes your clips for one frame with your brand on it — “What comes back is the real thing, made the real way — not a drawing of what it might look like.” If it cannot be made, the page says so and shows you nothing in its place, on purpose.
  • The name and the tagline are never sent to the image model, and the page says why: asking a model to letter a name gives back a mangled wordmark. They are used on screen and in the overlay only.
  • The readability card measures your ink against your surface with the same rule the renderer applies, on the colour a viewer actually receives — the subtitle box is partly transparent, so a pale surface can drag the composite under the line while both colours look safe inspected alone.
  • A pair under the line does not stop the clip. The render is a background job, so a refusal there would be a clip that silently never arrives — instead the subtitles keep the built-in colours and a note comes back saying so with the two figures in it. The background card still gets your colour, because that half was never the unreadable half.
  • The font field is a name, not a file. “It is used only if the machine that renders your clip already has that family. Fonts are never uploaded.” If it is not there, the note names what was used instead.
  • If your logo would land on the subtitles, the renderer moves it up and tells you by how many pixels — “your clips will look like this, not like the corner picker above.” It is better to know than to have a corner picker that lies.
  • The brand-match check on a finished piece gives three separate answers — colours, logo, avoided words — and no overall score. “Three separate answers cannot be averaged into one feeling, and a number would hide which of them failed.”

Nothing here makes a picture match your brand

The guidance half of this page carries that sentence in full: “A picture from a model is asked for your colours and your style words. What comes back is its answer, not your palette. Nothing here makes a picture match your brand. Look at each one before you post it.” The layers that do obey exactly are the ones this app draws itself — subtitles on a clip, background cards, slideshow cards, and the logo laid over a frame. Everything a model draws is in the other half.

When it refuses

  • Uploading an SVG“PNG, JPEG and WebP only, judged by the bytes rather than the name. SVG is refused on purpose: it is a document that can run a script.”
  • Somebody who is not the workspace owner saves“Only the owner of this workspace can change the brand kit.” Everyone else can read every part of it — nothing here is hidden from them.
2

One brief becomes a grid

Idea Matrix → Brief → Angles → Grid

Open

Three boxes in, a grid out: your angles down the side, nine opening formulas across the top. The compliance gate reads every cell before you see it, and every button that spends credits carries its price on its face.

The Idea Matrix at the brief stepFull size
Three boxes and only the first is required. The credit balance is in the top right and the line under the button says which half of this is free: proposing angles costs nothing, building the grid has a price, and the price is on the button.

Do this

  1. 1Propose angles Topic is the only required box; tone and goal are optional and all of it can still change at the next step. “Proposing angles uses no credits. Building the grid has a price, and it is on the button.”
  2. 2Confirm the angles Rewrite a label, drop one you would not post, add one of your own. Five is the ceiling, and the card explains it as arithmetic rather than policy: five angles times nine openings is already forty-five ideas.
  3. 3Build the grid · N credits The number on the button is what it costs. If this server cannot say what it costs, the button does not run: “The grid waits until this server can say what it costs. A button that spends credits never runs without its price on it.”
  • The nine formulas are the openings, not the subjects: the result, the problem, curiosity, the selling point, a story, time saved, scarcity, high feeling, and what it costs to wait. The last three carry a “Pushes harder” badge — “Scarcity, urgency and fear read louder than the facts behind them. The gate is not relaxed for them — say only what is true and this badge costs you nothing.”
  • Each cell shows the gate's findings and the rulebook version it was read against. A cell it blocked says so on the cell; edit the line and the gate reads it again straight away.
  • If this install has no AI writer connected, the grid still builds and says so first: the copy comes from the built-in stand-in writer, it is still gate-checked and still usable, and building the grid still costs its credits.

When it refuses

  • Not enough credits for the batch“Not enough credits for this batch. Choose fewer cells, or wait for tomorrow's free credits.” The bar above also names the shortfall — “You are 12 credits short.” — rather than only greying the button out.
  • Two angles with the same name“Two angles share a name. Give each one its own.”
  • The service is not switched on for this server“The idea matrix is not switched on for this server yet.” — with “Nothing you typed is lost — try again once it is up.” underneath.
3

Check the set against today's rules, not the day it was written

Idea Matrix → Check the whole set

Open

Each cell carries what the gate found when the set was written. This button re-reads every one of them against the rulebook as it stands now, and turns the answer into a document you can print.

The free caption checker, answeringFull size
One caption, five findings, each naming the rule it touches and what to do about it rather than only that something is wrong. The verdict reads “strict mode would stop this” — and the block at the bottom says why that is not the same as being blocked: this page blocks nothing, because nothing is being posted.

Do this

  1. 1Check the whole set “Every cell has just been read against the rules as they stand today — not as they stood on the day the set was written.” The panel prints the gate mode, the rulebook version and the time of the reading.
  2. 2Open the report → Print or save as PDF The table lists all N ideas in the set, “including the ones that did not pass”. If a fresh check could not be run, the report says so at the top and prints the stored results with “The rules may have moved since.” rather than passing them off as current.
  • The report ends with the sentence that decides what it is worth: “This is a machine reading of the rulebook named above. It is not legal advice and does not replace a lawyer's opinion.” And its provenance block says the same about itself — set, time, rulebook version and mode “identify this reading; they are not a cryptographic signature.”
  • If this workspace runs the gate below its strictest setting, the panel still tells you what the strict reading would have done — and labels it as the hypothetical it is: “That is a what-if, not what happened: this workspace runs the gate in audit, so nothing here was actually stopped.”
  • The same rulebook is readable by anybody at /check, with no sign-up: ten checks a day per connection, and “Your text is never saved. It is read, answered and dropped; only a count of how many checks ran is kept.” That page answers at the strictest setting and blocks nothing, because nothing is being posted — its own note says so. It is switched off until an admin opens it, and a closed one says so politely rather than erroring.

When it refuses

  • This install cannot re-check a whole set“This install cannot re-check a whole set yet. Each cell still shows what the gate found when the set was written.”
  • The free checker's daily allowance is used up“That is all ten for today. The free checker allows ten a day from one connection. It starts over tomorrow — or open a free account, where checking is part of the workflow rather than a daily ration.”
4

Produce only the cells you actually like

Idea Matrix → the grid → Produce

Open

The grid is written; nothing in it has been produced. Tick the cells worth having, read the confirmation, and press once. What lands is a set of drafts in your content library — nothing is posted anywhere.

Do this

  1. 1Choose On a cell, or “Take the whole row” for one angle across every opening. There is a ceiling per batch and the bar says so — untick one to add another.
  2. 2Produce · N credits The confirmation states the two numbers and the charging rule together: “A cell that fails costs nothing and tells you why. Nothing is posted anywhere — these land in your content library as drafts.”
  • “Credits are taken only for the cells that come out.” A cell that fails is marked “Did not come out” and carries the reason code, and the draft copy it already produced stays — the writing was real work.
  • A blocked cell cannot be produced until its wording changes, and it takes no credits in the meantime.

Your image spend reads as “unpriced” until an owner types the rate they actually pay

One produced set is forty-five pictures, and by default every one of them is written into the ledger with no figure against it. That is not a bug and it is not a rounding to zero: the image provider bills per prediction and never says how much in its reply, so the only place the number exists is on the invoice the owner pays. The admin card that fixes it ships with no default and never will have one — a guessed rate is money nobody paid, and a screen that showed one would invite an admin to accept it. Until somebody enters their own rate, the spend panel counts the pictures and says the total is short: “N of these generations came back with no price from the provider. They are counted, but their cost is not — so the total above is lower than what was actually spent.” Entering a rate applies to the next picture only. “Rows already in the ledger keep the figure they were written with, because nobody knows what those cost.” Zero is refused as a rate, because once stored it cannot be told apart from having no price at all.

When it refuses

  • Nothing ticked“Choose at least one cell first.”
  • Too many cells at once“Too many cells at once. Choose fewer and produce the rest afterwards.”
5

One cell becomes one clip, and the destination decides the shape

Idea Matrix → a produced cell → Turn into a clip

Open

There is no whole-row and no whole-grid button here, and that is stated on the control rather than left to be discovered. The aspect ratio is not part of your brand — the same brand ships 9:16 to TikTok and 16:9 to YouTube on the same afternoon — so it is chosen per clip, by where it is going.

Do this

  1. 1Turn into a clip On a cell that has already been produced. The button says what it costs and what it is against: “Uses no credits · renders today 3/10”. A cell that has not been produced yet says “Produce this cell first. A clip is built from the draft it becomes.”
  2. 2Output shape Three named destinations rather than free width and height: Tall 9:16 for TikTok, Reels and Shorts; Square 1:1 for the Instagram and Facebook feed; Wide 16:9 for ordinary YouTube video. The hint under it is the whole rule: “Pick where this is going. The shape follows the destination, not the brand.”
  • An install that has never opened the admin card allows the tall shape and nothing else. That is fail-closed on purpose: a new shape changes what every finished clip looks like, so it is a decision an admin makes rather than a default they inherit. The picker says so — “Only the tall shape is switched on here. An admin can open the others.”
  • A queued render keeps the shape it was queued with. An admin narrowing the set while your job waits does not change what you asked for, and does not strand the job either.
  • Your brand reaches the clip through the layers this app draws: the subtitles, the background cards and the logo overlay. Whatever a model drew inside the frame was only steered — the check panel after the render says which layers were held to your kit and which were not.
  • Rendering a clip uses no credits — it draws on the workspace's own media quota, and the daily and storage caps live on the admin Media card. When one of them blocks a render, the button disables itself and prints which.

When it refuses

  • A shape an admin has not opened“That shape is switched off here. An admin can open it in settings.”
  • A cell with no draft behind it“This cell has no draft yet. Produce it first, then make the clip.”
6

Find out which idea actually earned something

Idea Matrix → a square → What this one did

Open

This is the reason the grid is a grid: each square carries its own tag into the link it produces, so an imported order can be traced back to the idea that earned it. Read the state chip before the number — four of the five states mean there is nothing to read yet.

Do this

  1. 1Order by real results Sorts by measured views, highest first. Squares that have outcomes but no view count sit at the end rather than at zero — they have results, just not that kind. “Nothing here is a combined score.”
  2. 2Copy the tag The square's own sub-id. Paste it into a report filter on the platform's side to check the app's arithmetic against theirs.
  • Figures from the practice publishing path are left out of every total on this card, and the card says so where they were: “These figures came from the practice publishing path, so they are left out of every total here. Post it for real and the platform's own numbers take their place.”
  • Clicks are split into people and bots, counted apart, and commission is split into confirmed and not-confirmed-yet. Orders that were rejected are named as rejected — “none of their money is counted”.
  • None of this works unless an admin has said which sub-id slot carries the square's tag, and that setting is not retroactive: “Links already made keep the slot they were made with… A change applies to links made from now on — yesterday's orders are not re-tied.” With it off, orders can still be counted for the workspace but never traced to one square.

When it refuses

  • A square that was never posted“Not posted yet, so there is nothing to count.” — a state, printed where the number would be, rather than a zero.
  • Posted, and the platform has not answered“Posted · nothing back yet”, with the source named as “The platform has not answered yet”.

What each platform allows

The single most common misunderstanding about this app is what it can post and where. This is the whole answer.

YouTubePosts for real

Connect with Google sign-in. Needs an approved item with a rendered clip. Uploads always land as Private and always carry the synthetic-media flag. Google's quota is roughly 100 uploads a day shared by the whole app.

LINESends a message, not a post

No sign-in: an admin pastes one Official Account token and everyone on the server shares it, so check the account name before you opt in. LINE VOOM has no posting API. Broadcasts spend monthly quota per follower and cannot be recalled.

TikTokYou post it, by hand

InfluDNA never posts to TikTok. Its guidelines require a person to complete every post and its API cannot attach the product anchor your commission depends on. Take the package — caption, link, .mp4 — and post it yourself.

Instagram · Facebook · XSimulated only

There is no connection to these yet, so posts to them are simulated and labelled as such. Anything shown against them is made up. Use the package here too.

Shopee VideoYou post it, by hand

The default channel for affiliate links, and where the clip usually belongs. Remember what you ticked in the draft dialog: turn on Shopee's AI-content disclosure toggle when you post.

Detailed guides for creative and workflow tools

These chapters expand selected pages from sections 1, 3, 5, 6, 8 and 9 of the whole-app map — the tools each job reaches for, rather than the steps of any one job.

Workflow Builder

Open

Chain the steps above into something that runs on a schedule. “Create daily workflow” on the Ready-to-post card builds the five-step affiliate version for you and drops you here to set the hour.

The workflow builderFull size
A straight chain, not a canvas. The palette only offers steps that can legally follow the previous one, so an invalid pipeline cannot be drawn in the first place.
  • The pipeline is a straight chain. The palette only offers steps that can legally follow the previous one, so an invalid pipeline cannot be built — publish is terminal, and once you add it the palette says “No valid step can follow this one.”
  • There is no field for the trigger's idea text. In practice the workflow's Description is the prompt — leave it blank and the run fails asking for an idea you have nowhere to type.
  • “Test run” really executes. Text and caption steps call the model and create real drafts with a real cost row; video and audio really render and the run parks until the clip is finished; the approval step always pauses and waits for a human. Two do less than they look: the image step does nothing and reports itself as simulated, and the publish step writes a marker and calls no platform.
  • The daily schedule panel only appears after a workflow is saved, and it needs the server-wide scheduler switched on. If it is off, the panel says so rather than pretending to be armed.

The prompt library

Open

184 starting points in 16 categories, inside the “Create a workflow from one AI prompt” card. Click one and it fills the box; edit it before you build, because the wording is a starting point and not a spell.

The prompt library, inside the builderFull size
Two rows of filters, because there are two questions. The top row is what you are posting about; the second is why anyone would say “how did you think of that”. The number beside each is real — nothing is padded to make the set look full.
  • There are two filter rows and they answer different questions. The first is the topic — Fun, Education, Affiliate, Food, Personal finance. The second is the mechanism: why anyone would find it surprising. If you know you want a reframe but do not care what it is about, use the second row; the first cannot get you there.
  • Search reads both languages, the tags and the category. Typing “affiliate” finds the commerce prompts even though the word appears on the category and not inside them.
  • Every prompt starts life as a creative hypothesis, and it cannot be shipped as anything else — the library is prevented at build time from carrying a prompt pre-set to “real data”. Raising a claim is something you do afterwards, on the node, by supplying a source.
  • Health and personal finance are written differently on purpose. Those prompts refuse an outcome promise inside their own text — “say what this cannot do before what it can”, “name no specific asset” — because those are the two categories where a bad claim costs a reader their health or their money.
  • Two of the ten surprise angles are missing from the filter row, and that is deliberate. “Persona predicted it” and “unexpected gift” describe things that happen while a run is going, from a persona log or a generated result — a fixed library has nothing honest to put there, so it puts nothing.

Hook Doctor: three openers

Open

On a text or caption step, Hook Doctor writes the same idea three ways — plain, with a twist, and proof-first — and keeps them as three separate things you choose between, rather than one paragraph you have to pull apart.

  • Straight is the baseline and keeps the node's own angle, which is what makes it a baseline. Twist opens on a counter-expectation. Proof-first opens with the evidence and reveals the point afterwards.
  • If you have no source, proof-first does not invent one. It writes a placeholder asking you to paste your own example, and it carries an amber label saying it must not be described as platform analytics. The label follows the run into the history, so it is not just a courtesy in the editor.
  • Choosing a variant rewrites the step's prompt and its claim level together. So picking a hypothesis opener on a step that was claiming real data quietly lowers the claim — the guard rail moves in the safe direction when nobody is watching.
  • No model writes these. They come from a fixed set of templates in your language, because a model asked to invent an opener would invent its proof line too, and that is the one thing this whole feature exists to prevent.
  • Re-applying replaces the opener instead of stacking another one on top. Changing the app's language between two applies is the exception — the old block stays, visible, for you to delete.

What you may say about it yet

Open

After creators rate a surprise result, the evidence report tells you two things that are deliberately kept apart: whether enough has been collected to read, and which way it came out. Neither one implies the other.

  • Readiness has four states: Creative ready, Evidence missing, Real data blocked, Directional only. The best any study reaches today is Directional only — the reviewer is usually the person who wrote the thing and a surprise opener announces itself, so a truly blind comparison is not something this product can run. Collecting more responses makes that estimate tighter, not more valid.
  • The result line has three values, not two: Not readable yet, Leaned toward surprise, Did not lean toward surprise. The two boxes are styled the same on purpose — colouring one green would tell you which answer is the win, and a study you can already guess the wanted answer to is not one.
  • A study with enough responses that came out unfavourable now reads Directional only + Did not lean toward surprise. It used to say “collect more evidence”, forever, because the gate also required the answer to be good. An evidence pipeline that cannot report a negative finding is not one.
  • Blockers are sentences with a next action attached — collect creator ratings, invite more creators, connect analytics, run a paired test — not statistical vocabulary. Rows from the demo seed are counted as excluded and labelled, never as part of a real cohort.
  • “Audience DNA” is the phrase most likely to be misread, so the builder gates it. With no analytics connected — and none can be in this build — the panel says so and offers the creative or sandbox path instead of going quiet. A real-data claim needs a source, an observation time and a sample size; two out of three still blocks it.
  • The share brief carries the readiness, the direction and the blockers. It carries no comment text and no author ids — what you send to a client says what the evidence supports, and nothing about who said it.

Content Factory

Open

Free-form generation, outside the affiliate loop. Useful for captions and scripts that are not tied to a product.

The content factoryFull size
Free-form generation, separate from the affiliate loop. Text and captions come from a real model when one is configured; image, video and audio here return a written description, not a file.
  • Text and caption go to a real model when an admin has configured a provider. When none is configured you still get a draft, and it ends with a line telling you it is a fallback.
  • Image, video and audio on this page return a written description, not a file. The thing that renders an actual .mp4 is the Make-a-clip button in the draft dialog and the review queue.
  • The frontier-model picker under Advanced is a routing preview. Every media model in it reads “Coming soon”, and the model you pick is not sent to the generator — it changes nothing about the output.
  • Brand voice is real: what you save there is folded into the system prompt of every live generation in this workspace.
  • Performance Preview scores, retention curves and hook rewrites are deterministic heuristics computed from the text itself. They are a second opinion, not a measurement, and the badge on the panel says so.

Audience DNA

Open

Describe an audience, get three personas, and interview one before you commit to an idea.

Audience DNAFull size
Three personas per segment, generated from the name and criteria you typed. The same input always gives the same three people — they are a thinking tool, not research.
  • Name the segment, add interests, pick a platform, an age range and a region, then “Create & generate”. The button stays disabled until the segment has a name.
  • You always get exactly three personas, computed from the name and criteria. The same input gives the same three people every time — that is a property, not a cache.
  • Every interview answer is followed by “Simulated response”. The page prints that line whether or not a real model was involved, which is the cautious direction to be wrong in.
  • The insight summary reads like analysis but is a template sentence assembled from those three personas. Use it to sharpen a hunch, not to justify a decision.

Standards and delivery — SCORM, LTI, badges

Open

How a course reaches an organisation's own learning system. Open it from a course: Standards panel. Its own summary is the honest one — “All of it ships switched off, and each card says what would switch it on.”

  • SCORM needs a purchased packaging contract, and without one the button answers exactly one honest refusal: “No packaging provider is set up on this install. An administrator adds one under Admin, and until then nothing is built — rather than something untested being shipped into a customer's system.” The provider list has two entries and one of them is “None”. This is not a missing feature; it is the decision that buying it is the only responsible way to have it.
  • The package that would be built is a launcher, never the lessons themselves: “A course running inside somebody else's system would produce a record our server never saw, and that record is the only thing the course was bought to produce.”
  • LTI is three addresses an administrator pastes into their learning system, and it is off to begin with — “a protocol left open because nobody chose to close it is a surface nobody watches.” One permission is requested: putting a mark on a column the platform already made, and nothing else. The private key is never shown by any route; what is listed is the key's name.
  • The catalogue entry says what a course is, never how anybody did on it: no enrolment count, no completion rate, no average. “A figure leaving through this door would have left without passing the group-size rule that protects it.”
  • A badge carries no cryptographic signature and says so: “It is checked by asking the issuer at the address below, which answers afresh every time — including when a badge has been withdrawn.” Above the knowledge rung a badge needs occasions confirmed by somebody who is not the learner, and this install's own floor applies on top of the number the badge sets.
  • Screen text follows your language; anything that leaves the app — the SCORM manifest, the badge, the catalogue entry — is written in the language the course is taught in.

Training rounds

Open

Assign one published version of a course to a group of people, inside a window, and keep the record of who has done it. Two tabs, and the difference between them is the whole design.

  • The roster names people, on purpose, and says why it may: “An employer has to hold this, person by person, for at least two years — and it may name people precisely because it carries no marks. The figures are on the other tab, with their own protection.”
  • The overview names nobody, and a cell describing too few people is withheld rather than rounded: “Zero is a number as well, so nothing at all is shown in its place rather than a dash somebody could read as one.”
  • The version published on the day the round is created is pinned to it. Publishing a new version later does not move anybody who was already assigned.
  • Taking somebody off a round takes a name off a list, and nothing more: “It never deletes a training record: if the person started the course, they took the course.”
  • Reminders appear inside this app and nowhere else, and the card says so rather than offering a channel picker: “There is no email or messaging channel here, and offering a choice would suggest there is.”

Concepts, suggestions and spaced review

Open

Three surfaces that read the answers already stored and try to be useful without overclaiming. Concepts and misconceptions from a course, a short list of what to work on next, and a review queue that brings questions back on a schedule.

  • On the concept graph, a person writes the meaning and the figures are counted from answers already stored: “Nothing on this screen is worked out from patterns in the data.” Every link between concepts is written by a person, and no figure ever rides on one.
  • A concept with too few tagged questions is left out and says so, because “A concept with a single question is that question.” And the one-concept panel deliberately carries no total, not even the group it was counted against: “a total beside its parts lets a hidden part be worked out.”
  • A suggestion may not rest on watching alone — “Nobody has answered anything yet, so there is nothing to base a suggestion on. Watching a lesson to the end is not the same as knowing it.” — and no suggestion carries an expected gain: “Nothing in this design could check one, so none is offered.”
  • The review schedule names its own source and the limits of it: “The dates come from FSRS-6, the scheduler the Anki community uses. It was compared against earlier schedulers on a very large open dataset of that community's own reviews, and that comparison is not peer-reviewed published research.” It is off until an administrator turns it on — “Nobody starts getting review prompts because their workspace was upgraded.”
  • An experiment on a course can only ever read as “No reading yet” or “A direction, not a significance test and not a cause”. The card states the ceiling out loud: “This product cannot produce a result labelled a win or proven.” Everyone in it gets the whole curriculum, the same attempts and the same pass mark; only whether a review prompt was sent varies.
  • Wording drafted for a facilitator is labelled for what approving it means: “Approving records who decided, never that the wording is right.” The model never sees who anybody is, never sees a figure the group threshold hid, and never states a figure at all — every line carrying a number is dropped before the draft is stored.

Evidence from your work, and who may say so

Open

The rung above a passed assessment is not something this app can measure, so it does not pretend to. You describe a piece of work; somebody who is not you says whether they saw it.

  • Sending a description confirms nothing by itself: “Sending this asks somebody to confirm it. By itself it confirms nothing.” And until somebody answers: “Nobody has answered this yet, so it counts for nothing so far.”
  • The rung “Applied it at work” is never produced here, and the reason is written on the rung itself: “The only sign this app has that you applied something is your own account of it, and your own account is a request rather than a finding.” “Kept doing it at work” is never produced here either.
  • You cannot attest to your own work, and an attestation cannot be edited or taken back: “If you change your mind later, record a new answer against new evidence — the first one stays, with its own date.” What was written is kept word for word and shown to the person it is about.
  • There is no upload here, only a link, and the reason is stated: “Files are not uploaded here, because storing them would open a whole privacy surface for the sake of one box.”
  • Answering is not approval and not a grade: “Answering records what you saw, on the day you saw it. It is not approval and it is not a grade — there is nothing here to score.”

Recipes, and the gallery that publishes none of them by itself

Open

A recipe is a brief, the angles that worked and the words you like — no pictures, no links. Write one in My recipes; the gallery is where other people's appear, and nothing appears there without a human pressing a button.

  • Personal data is cut on the way in, and you are shown where: “Addresses, links, phone numbers and product codes are taken out before anything is stored. Whatever is cut leaves a ▮ so you can see where.” The toast then counts the cuts.
  • “Send it to be read” is a submission, not a publication: “Sent. Somebody reads it before it goes up.” On the admin side the desk says the same from the other end — “Nothing goes up without somebody here pressing a button.”
  • The gate reads a recipe too, and a forbidden claim is refused at the author's door and at the admin's: “The compliance check stopped this one. The findings below say which words, and it cannot go up until they change.”
  • Withdrawing stops new copies and reaches no old ones, and the note says exactly that: “Nobody new can take it now. The workspaces that already did keep their copy — we cannot reach into them.” A recipe somebody has already taken cannot be deleted at all; it can only be withdrawn.
  • Enough reports from different people and it comes down on its own, then somebody reads it. Putting it back clears the reports that took it down, “so it does not vanish again the moment somebody reports it once more.” The gallery itself is closed until an admin opens it — a closed one answers a plain 404 and the desk stays open behind it.

Credits, invites and the creator programme

Open

Three money-adjacent surfaces, all of them off on a fresh install, and all of them built around the same refusal: no figure appears here that somebody did not really count.

  • A referral is counted at signup, not from a browser cookie: “so every one of these can be checked.” Every figure on the page “is a share of a payment an admin approved. Nothing here is estimated, projected or typed in by hand.”
  • There is no total, and there is no field in the payload to build one from. Money is shown per currency and per state — “Nothing here is added across currencies or across states.” — because a single figure would either convert at a rate this app never measured, or add money already paid to money still inside its hold and call the result a balance.
  • The rules — your share, how long you earn, the hold, the sign-up bonuses, the payout minimums — are read live from this install's settings: “none of these numbers is typed into the page.” If a currency has no minimum set, the money waits and says so rather than being converted.
  • The creator programme grants a plan in exchange for posting, and counts only what this app published for you: “Posts you tell us about yourself are shown, but they do not count towards the term.” Leaving ends the free plan and takes nothing back — “Everything you have already made stays yours.”
  • All three ship off, and an off programme is a screen rather than an error: “Whoever runs this install has not switched it on. Nothing is broken and there is nothing to do — if you were expecting it, ask them to open it.” A feature that gives money away must never switch itself on.

For whoever runs the server

Several steps above end in “unless an admin enabled it”. These are those switches, under Admin. A creator cannot reach this screen.

Publishing

The master switch for real publishing, a switch per platform, YouTube's client credentials and the LINE Official Account token. With the master switch off, posts still appear and still say what they would have done, and nothing leaves the building.

PublishingFull size
Publishing

Product sources

Which of the five import routes creators can see. A route switched off does not render at all on their side — no greyed-out card, no teaser. The Product Feed CSV is not switchable; it is always available.

Product sourcesFull size
Product sources

AI

The model provider and its key. Without one, text generation still answers — with a canned draft that says it is one.

AIFull size
AI

Media

Clip rendering on or off, the daily cap and the storage cap. When any of these blocks a render, the Make-a-clip button disables itself and prints which one.

MediaFull size
Media

Scheduler

The server-wide automation switch. With it off, daily workflow schedules do not run, and the builder tells the creator that rather than letting them believe they armed something.

SchedulerFull size
Scheduler

If you remember one thing

Choose the right section, provide only the source information that page asks for, check the result, then follow its Next step. Every public item still passes through Review before Publish.