---
title: "Build Visual Workflow Plugins on Vercel"
description: "Deploy a visual workflow builder on Vercel and extend it with plugins for the APIs you actually use. Learn Vercel Workflow fundamentals along the way."
canonical_url: "https://vercel.com/academy/visual-workflow-builder-on-vercel"
md_url: "https://vercel.com/academy/visual-workflow-builder-on-vercel.md"
docset_id: "vercel-academy"
doc_version: "1.0"
last_updated: "2026-04-11T08:38:52.588Z"
content_type: "course"
lessons: 6
estimated_time: 
lesson_urls:
  - "https://vercel.com/academy/visual-workflow-builder-on-vercel/first-plugin.md"
  - "https://vercel.com/academy/visual-workflow-builder-on-vercel/resend-plugin.md"
  - "https://vercel.com/academy/visual-workflow-builder-on-vercel/build-your-plugin.md"
  - "https://vercel.com/academy/visual-workflow-builder-on-vercel/webhook-workflow.md"
  - "https://vercel.com/academy/visual-workflow-builder-on-vercel/error-handling.md"
  - "https://vercel.com/academy/visual-workflow-builder-on-vercel/hello-workflow.md"
---

<agent-instructions>
Vercel Academy — structured learning, not reference docs.
Lessons are sequenced.
Adapt commands to the human's actual environment (OS, package manager, shell, editor) — detect from project context or ask, don't assume.
The lesson shows one path; if the human's project diverges, adapt concepts to their setup.
Preserve the learning goal over literal steps.
Quizzes are pedagogical — engage, don't spoil.
Quiz answers are included for your reference.
</agent-instructions>

# Build Visual Workflow Plugins on Vercel

Reliable background work means duct-taping queues, retries, state management, and tracing together — just to send an email without losing it.

Vercel Workflow replaces the duct tape. Tag a function with `"use workflow"`, tag async calls with `"use step"`, and you get durability, retries, and observability built in. No infrastructure to manage.

The visual workflow builder puts this power in a drag-and-drop canvas. Connect triggers to actions, deploy, and run durable workflows without writing boilerplate. But the real value comes when you extend it — adding plugins for Slack, Stripe, Resend, your internal services, whatever your business needs.

This course teaches you how to extend the visual workflow builder with your own plugins. You'll deploy the builder, learn how it works, then create integrations for the APIs you actually use. Along the way, you'll pick up the Workflow fundamentals (steps, retries, error handling) that make your plugins production-ready.

## What You'll Build

- A webhook-triggered workflow that processes external events
- A custom "Shout" plugin (learning the folder pattern)
- A Resend email plugin with secure credential handling
- Your own plugin for Slack, Stripe, or another API you use

## Before You Start

**Skills:** Comfortable with Next.js and TypeScript. An AI coding assistant helps but isn't required.

**Accounts:**

- [Vercel account](https://vercel.com/signup) (free tier works)
- [Resend account](https://resend.com/signup) for the email plugin (free tier: 100 emails/day)

**Optional:** API credentials for whatever service you want to integrate in lesson 6 (Slack, Stripe, Twilio, etc.)

\*\*Note: Want to skip ahead?\*\*

The [workflow-builder-template](https://github.com/vercel-labs/workflow-builder-template) has a richer set of example plugins already built (for example Resend, Slack, Linear, Firecrawl, and AI Gateway). Deploy it and go. This course uses a stripped-down starter so you learn by extending.

## Six Lessons

| # | What You Do                                                | What You Learn                                                 | Time     |
| - | ---------------------------------------------------------- | -------------------------------------------------------------- | -------- |
| 1 | [Deploy the builder, run Hello Workflow](./hello-workflow) | Workflows execute steps durably in the background.             | \~15 min |
| 2 | [Build a webhook workflow](./webhook-workflow)             | Workflows can pause and wait for external events.              | \~20 min |
| 3 | [Build your first plugin](./first-plugin)                  | The plugin folder pattern with zero API complexity.            | \~20 min |
| 4 | [Build an email plugin](./resend-plugin)                   | Apply the pattern to a real API with credentials.              | \~25 min |
| 5 | [Break it, fix it](./error-handling)                       | `RetryableError` retries. `FatalError` stops. You control it.  | \~25 min |
| 6 | [Build your own plugin](./build-your-plugin)               | Wire up Slack, Stripe, or your internal API. Prove you get it. | \~45 min |

**Total: \~2.5 hours**

By the end, you'll have built three plugins: a toy one to learn the pattern, a real one that sends email, and your own for an API you actually use.


---

[Full course index](/academy/llms.txt) · [Sitemap](/academy/sitemap.md)
