| title: | In, Val, Out |
|---|---|
| description: | I/O with a val in the middle |
| pubDate: | 2025-10-02:00:00.000Z |
| author: | Pete Millspaugh |
One of the most common patterns in Val Town is to take data input from some external source, do something useful with that data, and send output to another external source.
I/O but with a val in the middle: I/V/O. In, val, out.
The canonical example is a user signup alert:
- Receive a webhook when a user signs up (e.g., from Supabase)
- Process or enrich the data in a val (e.g., with Clay)
- Notify your team (e.g., on Slack)
Dozens of examples are listed on the I/V/O docs, but the best examples will be the vals you create and use. Consider this a Call For Vals.
Input could be customer support email you receive, stars or new issues on your GitHub repo, failed payments from Stripe, user signups from Supabase, calendar invites, Sentry errors, form submissions—you name it.
Once you've piped input into a val, you could analyze or classify data with OpenAI or Anthropic, enrich it with browser automation via Browserbase or Kernel, verify phone numbers or emails with Twilio, process images and video, parse PDFs, or pipe data directly to an output channel.
After input and processing, you could notify yourself over email or Slack, create a Linear issue, open a GitHub PR, write to a Notion doc or Airtable, update a Google Sheet, persist data in SQLite or Supabase, or whatever else would be useful to you and your team.
Reach out to the Val Town team on Discord or over email if you'd like a hand setting up I/V/O, or feel free to open a docs PR linking to your val.
