~/ domain/sendlang.com.mdTHE AGENT-READABLE WEB

sendlang.com valid

SendLang

SendLang is the home of two small languages for lifecycle email. SendQL is a query language that describes WHO a message is for — one query is a single boolean expression over contact attributes, the raw event and activity stream, consent, and list membership. SendFlow is a workflow language that describes WHAT HAPPENS to a contact over time, stored in .flow files. SendFlow is a strict superset of SendQL: every where/when/if/until condition in a workflow is a real SendQL predicate. This site is

Visit publisher ↗
Authority
45 reach 0 · trust 5 · quality 25 · freshness 15
Tier
listed
llms.txt
https://www.sendlang.com/llms.txt
llms-full.txt
https://www.sendlang.com/llms-full.txt
Sections
7
Links
25
Size
6921 bytes
Country
— Publisher location unknown; CDN address excluded
Country evidence
No published address evidence collected yet
For agents
Documentation: developer or product docs worth reading, nothing to call
First seen
2026-10-26T09:45:48.550Z
Last checked
2026-10-26T09:45:49.038Z
Badge
Agent Web Map badge for sendlang.com

Their llms.txt

The beginning of the file, from our validated copy saved 2026-10-26T09:45:48.558Z. Cached copy · Source on sendlang.com

# SendLang

> SendLang is the home of two small languages for lifecycle email. SendQL is a query language that describes WHO a message is for — one query is a single boolean expression over contact attributes, the raw event and activity stream, consent, and list membership. SendFlow is a workflow language that describes WHAT HAPPENS to a contact over time, stored in .flow files. SendFlow is a strict superset of SendQL: every where/when/if/until condition in a workflow is a real SendQL predicate. This site is the canonical syntax reference for both. Both languages are designed to be authored and refactored by coding agents: the grammar and the reserved-word list are generated from the parsers, every error carries a line, a column and a named fix, and `sendflow-lint` is the loop you should iterate against before proposing a change.

Every page on this site is available as Markdown at its own URL with `.md` appended
(e.g. /docs/sendql/events → /docs/sendql/events.md). The links below point at those.
The full corpus in one file is at /llms-full.txt.

## Reading the code samples

Samples are tagged, and the tag matters:

- A `sendql` or `sendflow` block is real, valid source. Every one of them is
  parsed and type-checked against the actual parsers when this site is built.
- A block introduced by **Rejected** is source the parser REFUSES. It is shown
  to explain an error. Do not copy it.
- A block introduced by **Syntax form** is a shape, not a runnable program.

## If you are an agent writing a segment or a workflow

Read /docs/agents.md first — it is written for you. The short version:

- The registry (your account's attributes, events, activities, topics, templates
  and lists) is the ground truth for every name. Ask for it; do not invent names.
- Run `sendflow-lint -registry registry.json <files>` before proposing the change.
  Exit 0 means the workflow is real; anything else is a positioned message to fix.
- Then `sendflow-fmt -w` it, and let a human read the diff. Nothing sends until
  they merge.

## Two facts worth knowing before you write any SendQL

1. **Events vs activities.** The eight EVENTS are a closed set about email you
   sent — send, delivery, open, click, bounce, complaint, reject, delivery_delay —
   and are written bare. Anything the contact did in YOUR product is an ACTIVITY,
   written with a qualifier: `activity.order`, `activity.login`. Writing
   `exists(order)` is an error: `unknown event "order"`.
2. **Absence.** A missing value does not compare. `attr.plan != "pro"` does NOT
   match a contact with no plan, and `last(open) < now - 90d` excludes everyone
   who never opened at all. To include them, say so:
   `last(open) < now - 90d or count(open) = 0`.

## Introduction
- [SendLang](https://www.sendlang.com/docs.md): Two small languages for lifecycle email — SendQL says who a message is for, SendFlow says what happens to them over time.
- [Core concepts](https://www.sendlang.com/docs/concepts.md): The data model both lang
…

Machine-readable: GET /v1/resolve?q=sendlang.com · GET /v1/domain/sendlang.com · this page as Accept: application/json or text/markdown · MCP lookup_domain

Automatically discovered from public files. Inclusion does not imply endorsement or publisher participation.

Own or manage this website?

If you own or manage sendlang.com, you can update its listing and review file health, discovery activity and score history.

Manage this listing — optional

What verification unlocks

See how your site is discovered—and control what agents see.

  • See your website in the map

    Review your indexed topics, nearby publishers sharing headings, measured listing exposure and map snapshots in a private report for your website.

  • Control what agents see

    Edit your listing description, tags, public contact details and additional llms.txt paths. Publish your terms for automated access, attribution and pricing.

  • Make your profile eligible for search

    A valid, listed, unblocked, verified profile can appear in our publisher sitemap and become eligible for search-engine visibility. Search engines decide what to index and rank.

  • Appear in our llms-full.txt

    Eligible verified publishers are listed by name, with their file links and summaries, in the service overview agents can read.

Free. No account registration, backlink or payment required. Public discovery remains available without verification.

Verify your website—free

Preview the owner dashboard · All verification benefits

Let your coding agent verify it

If your coding agent is authorized to manage this website, paste these instructions into it.

Claim my listing on Agent Web Map for sendlang.com:
1. POST https://agentwebmap.com/v1/sites/sendlang.com/claims and keep claim_id and claim_secret private.
2. Publish the verification line "AgentWebMap verification: <token>" (token from step 1) in https://sendlang.com/llms.txt, or use the DNS, meta-tag or well-known method the response describes. This only verifies the listing; your website and domain remain yours.
3. POST https://agentwebmap.com/v1/sites/sendlang.com/verify with {"claim_id": "...", "claim_secret": "..."}.
4. Save the api_key from the answer; it manages the listing (PATCH https://agentwebmap.com/v1/sites/sendlang.com).
MCP equivalent: tools begin_ownership_claim, then verify_domain, at https://agentwebmap.com/mcp. Docs: https://agentwebmap.com/docs#verify

Corrections or removal requests: contact the directory.

agent web map / a clearer way in.API & MCP · Contact