clickSomo

AI & agents

A sentence in, a funnel out —and then the same checks as everybody else.

"Win back customers who bought once last year and haven't opened anything since." That goes in; a funnel graph comes back. What makes it worth having is not the generation — plenty of things generate — but that the result is put through exactly the validator that gates a human's work, and then dry-run so you can read every message it would send before anyone receives one.

Two jobs, kept apart.

Funnel generation takes a description and returns a graph. It is deliberately the same contract the ecosystem's other AI panels use — a message, an optional object, and whether to replace or patch — over the same gateway, on the same operational path that already runs in production elsewhere.

Creative generation is the same contract applied to a document: generate or patch an e-mail, a page or a form. Because a creative is a document with a published schema, a model patching one is doing something structured rather than producing a wall of HTML and hoping.

The system prompt is a distilled copy of the funnel schema, and it is updated whenever the schema grows a key. A stale prompt is the failure mode here: the model authors vocabulary that no longer exists, the result looks entirely reasonable, and the validator rejects it for reasons the person reading cannot see.

Per-contact personalisation, cached

An ai_generate node fills merge variables at send time for each contact. It is metered against your quota and cached by the creative and a hash of the contact attributes it depends on — without that cache you would pay for a generation per recipient on every single send, which is a bill nobody budgets for twice.

Generate → check → simulateOne request
  • 1Your sentence"Win back customers who bought once last year and haven't opened anything since."
  • 2Graph returnedEntry, waits, a condition, two sends, a goal. Named nodes, real vocabulary.
  • 3ValidatedOne entry, all nodes reachable, every cycle contains a wait, every send has a creative and a subject.
  • ↻RepairedIf the check fails, it is handed back with the errors and tried again — and the attempt count is reported, not hidden.
  • 4SimulatedEvery message it would send and the day it would land, before you have published anything.

Same validator as a human'sNothing sent

The MCP server

Let an agent operate the product properly.

Served by the same process at /mcp over streamable HTTP, authenticated with a castomo token or an API key, and scoped to one project. It exists because "an agent can call your REST API" is true of everything and useful for nothing; what an agent needs is a described surface with the dangerous parts gated.

Contacts

list_contacts, get_contact, upsert_contact, list_segments, preview_segment. Ask who is in a segment before doing anything to them.

Funnels

list_funnels, get_funnel, create_funnel, generate_funnel, check_funnel, publish_funnel, pause_funnel, start_funnel_run.

simulate_funnel

The most valuable tool in the set by a distance. Dry-run a contact through a funnel and get back the path taken and the messages that would be sent. Without it, an agent authors automations blind.

Content

create_email and preview rendering. Markdown in, a rendered creative out — far more reliable than asking a model for e-mail HTML directly.

Campaigns and reports

list_campaigns, get_campaign, report_campaign. An agent that can read the numbers is an agent that can tell you something you did not already know.

Resources

The funnel schema, the creative schema, the merge-variable catalogue and the segment predicate grammar are all served as resources, so an agent works from the current definitions rather than from memory.

It writes the variant.
You keep the veto.

The gate, and why it is a hard stop.

Every send-capable tool is gated. A test send to yourself is free. Anything that reaches real people requires an explicit confirmation flag and is capped by your billing quota — both, not either.

The reason is simple and unglamorous. An agent that misreads a prompt should not be able to mail fifty thousand people, and no amount of careful prompting is a control. This is one of the few places where a hard stop genuinely beats a good default, and it is implemented as a hard stop.

The same reasoning runs through the design. An agent can draft, check, simulate, preview and report all day without a single message leaving. The one action that is irreversible is the one action that needs a human to have said yes.

What an agent may do unattendedSafety
  • ✓Read anything in scopeContacts, segments, funnels, campaigns, reports — within one project.
  • ✓Author and checkCreate a funnel, patch a creative, run the validator, run a simulation.
  • ✓Test sendTo a verified address of your own. Free, and it uses the real renderer.
  • !Send for realExplicit confirm: true, and inside the quota. Both. Neither is a suggestion.

Scoped to one projectQuota is the ceiling

What the model actually knows about your business.

A generator with nothing but your sentence writes generic copy, and everybody can tell. Given a URL, ClickSomo can read your site — a shallow crawl, a company profile — so the funnel it drafts is about what you actually sell and the copy uses your own words back at you. That is the whole difference between a demonstration and a feature.

Scraped text is treated as hostile input. It is fenced before any model reads it and sanitised before any of it is rendered, because text from a page you did not write is exactly where an instruction aimed at a model would be hiding.

The honest bit: a generated funnel is a good draft, not a finished campaign. It will contain a wait you disagree with and a subject line you would not have written. Twenty minutes of editing is normal — and it is twenty minutes rather than an afternoon because the shape, the checks and the simulation are already there. Generation is also unavailable on a deployment without an AI key configured, and the API says so plainly rather than failing in an interesting way.

Tell us what you send today,
and to how many.

We will show you what it looks like here — usually with the funnel drawn, because that is faster than a paragraph about it.

Open ClickSomo Talk to a person

Illustrations by Pixeltrue (Minimalistic pack).