Introducing Workflows: Carly Builds Reliable Automations For You

Introducing Workflows: Carly Builds Reliable Automations For You

Today we’re shipping Workflows — triggers, actions, branches, the whole automation stack you’d expect, with 200+ app integrations. Yes, Zapier has agents now too. The thing we keep hearing about Zapier agents from users who try them: they’re flaky. They hallucinate. They quietly stop firing. They invent fields. The action half of a Zap has always been reliable; the AI half on top often isn’t.

We built Workflows the other way around. The agent isn’t a step you add to an automation — the agent is what builds the automation in the first place, and then steps out of the way. You describe the outcome. Carly drafts the workflow, tests it against real data from your account, and saves a deterministic graph that runs the same way every time.

“When I get a Gmail with an invoice attached, save the PDF to the Drive folder for that client and label the email ‘Receipts/Filed.’”

“When someone fills out the Typeform on my site, post the lead in #sales and create a HubSpot contact.”

“If a Stripe charge fails, DM me on Slack with the customer’s email and the amount.”

Those are real workflows you spin up by emailing Carly. She picks the trigger, wires the steps, fills the parameters, runs a dry-run with a real recent event from your account, and asks you to confirm before going live.

What you can trigger on

  • Gmail or Outlook — new email, new attachment, new label, message from a specific sender, match a search query.
  • Calendar events — Google or Outlook, fires when an event is created, updated, or deleted.
  • Any of 200+ apps Carly already connects to — HubSpot, Salesforce, Pipedrive, Notion, Linear, Asana, Trello, Slack, Stripe, Shopify, Typeform, Calendly, Airtable, GitHub, and so on. See the full list on the integrations page.
  • Schedule — any cron expression in your timezone.
  • Webhook — Carly mints you a URL. Anything that can POST JSON can drive a workflow.
  • RSS or JSON feed — point at a URL, Carly polls and dedupes.
  • Manual — press a button.

What you can do in between

  • Send email, create events, update CRM contacts, draft replies — anything Carly can already do is a step.
  • Call any app’s API — every action in the 200+ connected apps is a step too.
  • HTTP request — call any endpoint, with retries and JSON parsing.
  • LLM call — drop a Claude or GPT call mid-workflow. Summarize a thread. Classify a ticket. Draft a response.
  • Branchesif/else and match on whatever fields you want.
  • For-each loops — iterate over an array (every attendee, every line item, every new feed item).
  • Filter — stop the run if a condition isn’t met.
  • Fallback stepson_error_next is a first-class field. When a step fails, route to a recovery step instead of failing the whole run.

Why this one works

Three things make Workflows more reliable than the bolt-on AI in the other tools:

Carly previews against your actual data before saving. When she drafts a workflow for you, she pulls real recent events from the connected app — your actual Gmail messages, your actual Stripe charges — and renders what each step would output. If a field reference is wrong, you see it in red before the workflow ever runs live.

The graph is deterministic. The LLM’s job is to author the workflow, not to execute it. Once it’s saved, every run follows the same explicit steps. No agent loop deciding what to do each time. No token cost per run. No nondeterminism in production.

Runs are inspectable. Every workflow run logs every step’s input and output. If something breaks at 3am, you can open the run, see exactly which step failed, see the exact payload, and tell Carly to fix it. She’ll edit the workflow and re-test.

When you actually need an LLM in the middle

Determinism is the default, but a lot of useful automations have one step that genuinely needs intelligence — classifying a ticket, deciding whether an email needs a human, extracting structured data from a freeform message, summarizing a long thread. Those are the jobs an if statement can’t do.

So you can drop an llm.call step anywhere in a workflow. Give it a prompt, point it at fields from upstream steps, and tell it what shape of output you want back. Carly handles the model call, parses the response, and feeds it to the next step — same way any other step would.

Some places this lights up:

  • Auto-reply with the right link: when a customer emails asking a question, classify what they’re asking about — pricing, integrations, cancellations, a bug — and send back the matching help-doc link automatically.
  • Summarize: take a 40-message email thread and produce a three-sentence summary before posting to Slack.
  • Extract: pull the meeting time, attendees, and topic out of a freeform email and turn them into a calendar event.
  • Decide: read an inbound lead and decide whether they’re high-priority enough to page the on-call rep.

The point isn’t that the LLM runs the workflow — it doesn’t. It runs the one step where fuzzy reasoning is actually doing work, and the rest of the graph runs deterministically around it.

Workflows worth stealing

Auto-file client attachments

“When I get a Gmail with an attachment from anyone at @acme.com, save the file to my Acme Corp folder in Drive and label the email ‘Acme/Filed.’”

Gmail trigger filtered on sender domain → Drive upload to a specific folder → Gmail label apply.

Receipt forwarding

“When I get an email with ‘receipt’ or ‘invoice’ in the subject, forward it to my bookkeeper and add a ‘Bookkeeping’ label.”

Gmail trigger with subject filter → forward step → label step.

Lead intake

“When a Typeform on usecarly.com is submitted, post the lead in #sales-leads on Slack, add them to HubSpot, and reply with my Calendly link.”

Typeform trigger → Slack message → HubSpot create contact → Gmail reply with template.

Failed payment alert

“When a Stripe charge fails, DM me on Slack with the customer’s name, email, and the amount.”

Stripe trigger → Slack DM with templated message.

External calendar invites get flagged

“If someone adds an event to my calendar that I didn’t create, color it tangerine and add a note in the description.”

Native calendar trigger → if branch on event.is_externalupdate_event with color and description.

Auto-reply to customer questions with the right link

“When a customer emails support@, figure out if they’re asking about pricing, integrations, cancellations, or a bug. Reply with the matching help-doc link. CC me if it’s a bug.”

Gmail trigger on support@ → llm.call to classify the question → match branch on the category → templated reply with the right link per case (and a CC on the bug branch).

Summarize long threads to Slack

“When I get an email thread longer than 10 messages, summarize it in three sentences and post the summary plus the link in #inbox-summaries.”

Gmail trigger filtered on thread length → llm.call to summarize → Slack post.

Watch a competitor’s blog

“Every morning, check competitor.com/blog/rss. If there’s a new post, email me the title, summary, and link.”

RSS poll trigger → for-each new item → LLM summarize step → send email.

Watch GitHub releases for libraries you depend on

“When a new release ships for stripe/stripe-node or vercel/next.js, post the release notes in #engineering.”

GitHub trigger filtered on repo → Slack post with templated release notes.

Onboarding when a new HubSpot deal closes

“When a HubSpot deal moves to Closed Won, send the welcome email, create a project in Linear, schedule a kickoff call with the contact, and add them to the customer Slack channel.”

HubSpot trigger → Gmail send → Linear create project → Carly schedule meeting → Slack invite.

The visual builder (for when you want it)

There’s a full editor in your dashboard’s Workflows tab. Vertical stack of steps. Click any step to edit. Click “Load recent events” on the trigger to test against a real Stripe charge, real Gmail message, real calendar event from your account. Each step shows what it would receive and what it would output, with unresolved variables flagged before you save.

Once a workflow is live, every run gets logged with full step-by-step input/output. Replay any run. See which branch was taken. Route around failed steps.

Get started

Fastest way is to email Carly with the automation you want:

carly@usecarly.com — “When I get an email with a PDF attachment from anyone at @acme.com, save it to my Acme folder in Drive.”

She’ll draft it, preview it against your actual inbox, and ask you to confirm. Or open the Workflows tab and start from scratch.

Either way: you tell her the outcome. She builds the thing that produces it.

Ready to automate your busywork?

Carly schedules, researches, and briefs you—so you can focus on what matters.

Get Carly Today →

Or try our Free Group Scheduling Tool or Free Booking Page