Internal app

Close Call Decks

Queue Close call transcript jobs, process them overnight, create sales decks via SlideClaw PDF export, upload them to Google Drive, and sync the resulting deck links back to Close.

Queued jobs

0

Accepted webhook jobs waiting for the external 02:00 trigger.

Processing / retry

0 / 0

Currently claimed jobs and jobs rescheduled for a later retry.

Completed / failed

0 / 0

Completed jobs now represent full AI → SlideClaw → Close pipeline success.

Implemented V1 foundation

Real intake, persistence, and end-to-end worker pipeline are now in place.

  1. 1. Make posts transcript payloads to the webhook route.
  2. 2. The app authenticates, validates, hashes, and stores queued jobs.
  3. 3. Duplicate deliveries resolve to deterministic duplicate responses.
  4. 4. An external scheduler calls the processing route around 02:00.
  5. 5. The worker claims eligible jobs, can reclaim stale leases, and runs AI, SlideClaw, Drive upload, and Close sync.
  6. 6. Completed jobs persist stage progress, deck metadata, and synced Close target details.

Implementation checklist

What is done versus what still remains open.

  • Webhook auth + strict payload validation implemented
  • Prisma persistence + idempotency enforcement implemented
  • External scheduler trigger route implemented
  • AI deck generation + validation pipeline implemented
  • SlideClaw PDF export + Google Drive upload + Close write-back flow implemented
  • Retry/detail actions still pending in operator UI
  • Worker lease recovery + stage visibility implemented

Webhook route

Bearer-protected Make intake with strict validation and idempotent queue insert.

POST /api/webhooks/close/transcripts

Processing trigger

Externally triggered worker entrypoint. Do not treat this app as a durable cron host.

POST /api/jobs/process

Target window: 02:00 Asia/Nicosia

Persistence

Prisma-backed DeckJob queue with explicit status lifecycle, stage checkpoints, and retry metadata.

queued → processing → retry_scheduled / failed / completed
stage: queued → ai_generated → presentation_created → close_synced

Recent jobs

Latest persisted jobs from PostgreSQL.

Database not reachable in this environment. Live job data will appear once PostgreSQL is available.