Office Manager
One vote per person, results at 11 AM, no more Slack threads.
You order lunch for a team of 15 every Friday. Currently you post in Slack asking what everyone wants, get a messy thread with emoji votes, changed minds, and replies to the wrong message. By the time you tally it up, half the team has not voted and you are guessing. You want a simple poll that each person fills out once, closes before the lunch order deadline, and shows results you can hand to the restaurant.
“I need a quick poll for Friday team lunch -- everyone votes once”
Create the lunch poll with one-vote-per-person in one call
curl -X POST https://sutrena.com/api/pipeline \
-H "Authorization: Bearer st_live_k7xM9..." \
-H "Content-Type: application/json" \
-d '{
"name": "Friday Lunch Poll",
"fields": [
{ "name": "name", "label": "Your Name", "type": "text", "required": true },
{
"name": "restaurant",
"label": "Where should we order from?",
"type": "select",
"required": true,
"options": ["Thai Palace", "Pizza Corner", "Burrito Bar", "Salad Place", "Sushi Express"]
},
{
"name": "dietary",
"label": "Dietary Notes",
"type": "textarea",
"required": false,
"placeholder": "Any allergies or restrictions?"
}
],
"uniqueBy": ["name"],
"successMessage": "Vote recorded! Results will be shared at 11 AM."
}'→ One call creates the poll form (one vote per name). Query submissions via the API to tally votes. The response includes the formId for setting the deadline.
Set the Friday 11 AM deadline so votes stop before the lunch order
curl -X PUT https://sutrena.com/api/forms/frm_m4n5o6 \
-H "Authorization: Bearer st_live_k7xM9..." \
-H "Content-Type: application/json" \
-d '{
"closesAt": "2026-03-06T11:00:00Z"
}'→ The form now closes automatically at 11 AM Friday. Drop the form URL in Slack and you are done.
Slack polls get buried in threads and nobody knows if they voted already. This is a dedicated form link you post once. Each person votes, the uniqueBy constraint prevents double-voting, and at 11 AM the form closes automatically. Query submissions via the API to tally the results, or set up a webhook to get notified on every vote. Next Friday, duplicate the form with a new closesAt and you are done in 30 seconds. When the poll closes, an automation can query the submissions and send the results to Slack via a webhook — winning restaurant, order time, and any dietary notes to pass along.
The uniqueBy constraint on name means a second submission from the same name will be rejected. If someone genuinely needs to change their vote, you can delete their original submission via the API (DELETE /api/forms/{formId}/submissions/{id}) and have them resubmit. For most teams this is rare enough that it is not worth overcomplicating.
You can duplicate the form each week with a new closesAt date. The fields and restaurant options stay the same -- just update the deadline. If the restaurant list changes, update the options array in the new form. Each poll uses one project slot, and the Free tier gives you 10 projects.
Set up a webhook to forward every vote to a Slack channel in real time, so the team can see results as they come in. After voting closes, query submissions via the API for the final tally.
Yes. Set up an automation that queries the submissions and sends the final tally to a Slack webhook or notification channel — winning restaurant, order time, and any dietary notes to pass along.
Sutrena is the web runtime for AI agents. Forms, Pages, Analytics, Webhooks, Automations — all through 67 MCP tools and one REST API. Your agent creates web artifacts, humans interact with them, and your agent gets the data back. Use any one feature or all of them together.
Pages
Deploy HTML instantly
Forms
Collect structured data
Automations
DSL-based pipelines with 14 step types
Analytics
Privacy-first, no cookies
Webhooks
Slack, Discord, Telegram
1. Get a trial key (no auth, no signup)
curl -X POST https://sutrena.com/api/trial2. Create anything — a page, form, automation, or analytics site
# Create a form
curl -X POST https://sutrena.com/api/forms \
-H "Authorization: Bearer st_trial_xxx" \
-H "Content-Type: application/json" \
-d '{"name": "waitlist", "fields": [{"name": "email", "label": "Email", "type": "email", "required": true}]}'
# Or deploy a page
curl -X POST https://sutrena.com/api/pages \
-H "Authorization: Bearer st_trial_xxx" \
-H "Content-Type: application/json" \
-d '{"slug": "index", "title": "My Site", "html": "<h1>Live</h1>"}'