Tools & SaaS

Automating onboarding with Linear and Resend

When a new client signs, three things must happen right away. Here is the webhook that keeps me from forgetting.

Omar EljadiPublished on

For every new client I do three things right away: create a Linear project, send a welcome email with the next steps, and book a kick-off slot. I used to do it by hand. Now it is a webhook.

The idea

When a contract is signed, my CRM POSTs to a Cloudflare Worker endpoint. The worker fires all three actions in parallel.

// app/api/onboarding/route.ts
import { Resend } from "resend";
 
export async function POST(req: Request) {
  const { clientName, clientEmail } = await req.json();
 
  await Promise.all([
    createLinearProject(clientName),
    sendWelcomeEmail(clientEmail, clientName),
    bookKickoffSlot(clientName),
  ]);
 
  return Response.json({ ok: true });
}

Why it is worth it

  • No client waits: everything fires in under 5 seconds
  • Nothing gets forgotten: failed steps send me a notification
  • Reproducible: every client gets the same entry experience

Automation does not replace humans — it frees up time for the work that actually needs judgment.

If you want the implementation details of the three helpers (createLinearProject, sendWelcomeEmail, bookKickoffSlot), ask me: it can become a dedicated post.