Goal
Activate a paused job after preview and voice validation. This is the explicit trust moment where the user says "yes, start posting."
Which Agents Use This
- custom (system/onboarding flows) — Used during agent hiring workflow after user reviews preview draft
Hard Rules
- MUST require explicit confirmation flags (confirm_preview_reviewed, confirm_schedule_understood)
- MUST validate voice_profile_id exists (for content jobs)
- MUST validate account_ids exist and have valid tokens
- MUST show clear schedule summary before activation
- MUST NOT activate without preview draft reviewed
Steps
1. Validate prerequisites
- Check confirm_preview_reviewed == true
- Check confirm_schedule_understood == true
bolta.get_job(job_id)→ verify job exists and is inpausedstatus
2. Validate dependencies (for content jobs)
- If job type is content creation:
- Verify voice_profile_id exists:
bolta.get_voice_profile(voice_profile_id) - Verify all account_ids exist and have valid tokens:
bolta.get_account_info(account_id)
- Verify voice_profile_id exists:
- If override_checks == true AND user is Admin: skip validation
3. Activate job
bolta.update_job(job_id, {status: "active"})- Calculate next_run based on schedule (cron expression or interval)
- Register job with Celery Beat scheduler
4. Return confirmation
- Return job_id, status ("active"), next_run timestamp
Output
{
"job_id": "uuid",
"status": "active",
"next_run": "2026-02-21T09:00:00Z"
}
Failure Handling
- If confirmation flags missing/false: fail with clear message
- If voice_profile_id invalid: fail with "Voice profile not found" (unless override_checks)
- If account token expired: fail with "Account disconnected, reconnect required" (unless override_checks)
- If job already active: return success (idempotent)
Example Usage
Scenario: Activate after preview approval
{
"job_id": "uuid",
"confirm_preview_reviewed": true,
"confirm_schedule_understood": true
}
Result: Job status → active, first run scheduled