Projects

Submit a project plan

Validate a full project plan through the deterministic gate, persist it onto the project, and start the campaign. Auto-enroll is off by default; when it is turned on for the project, every person whose match_score is 0.8 or above is enrolled into the project’s outreach sequence and emails are drafted to them against the caller’s connected sending account, pausing while 10 drafts await approval and resuming as they clear. No email is sent automatically: each draft waits in the Village app and leaves the mailbox only after the user, or a teammate in their workspace, reads and approves it. No tool here can approve or send an email. Body is the full structured plan. Include outreach_approach (the campaign intent gathered from the user) and stamp every sequence step with its canonical name, use_case, and audience — the server materializes canonically named steps from its own template canon, so the stamps matter more than the pasted text. On validation failure returns 422 with the offending section, errors, and remediation — re-draft only that section and resubmit. Part of the project-planning flow — the plan_a_project prompt orchestrates create_project → get_planner_skills → get_email_template → submit_plan; call this only after the user has confirmed the plan. Once the campaign reaches the sending stage it needs a connected sending account, which no tool here can add — if the user has none, point them to the Village app: Project -> Outreach -> Sender settings -> Add Email account.

post/v2/projects/{id}/submit-plan

Request

  • Base URL: https://api.village.ai
  • URL: https://api.village.ai/v2/projects/{id}/submit-plan
  • Auth: HTTP bearer

Path parameters

idstring required

Encrypted project identifier

Example:MLVEUadsfgzdsafsc10q5g%3D%3D!vNnNM

Request body

project_typestring required
briefstring required
sequence_namestring required
sequence_descriptionstring required
outreach_approach'warm_intro' | 'cold_warm_lever' | 'cold'

The campaign intent gathered from the user: 'warm_intro' asks mutual contacts for introductions first, 'cold_warm_lever' emails targets directly naming a mutual when one exists, 'cold' emails targets directly with no mutual mentioned. Sets each newly enrolled lead's default path (overridable per lead in the app). Copy ALL template sets into steps regardless — the approach picks the default, not which sets exist.

Response

Submission outcome

Changes

No recorded changes to this operation across all 1 revision of this API.