Quickback Docs

Action Examples

End-to-end action files.

Examples

Bulk Import (Standalone, No Record)

// features/candidates/actions/bulkImport.ts
import { z } from "zod";
import { defineAction, candidates } from "../.quickback/define-action";

export default defineAction({
  description: "Import candidates from job board CSV",
  path: "/candidates/import",
  input: z.object({
    data: z.array(z.object({
      email: z.string().email(),
      name: z.string(),
    })),
  }),
  access: { roles: ["hiring-manager", "recruiter"] },
  async execute({ db, input }) {
    const inserted = await db
      .insert(candidates)
      .values(input.data)
      .returning();
    return { imported: inserted.length };
  },
});

On this page