Hey team! I'm trying to inject dynamic system prom...
# office-hours
p
Hey team! I'm trying to inject dynamic system prompts into a squad via the Web SDK but getting 400 errors with all structures I've tried. What works:
Copy code
// Using Squad ID directly - connects fine
await vapi.start(undefined, undefined, "my-squad-id");
What fails (all return 400 Bad Request): Attempt 1 - Using membersOverrides:
Copy code
const squadConfig = {
  squad: {
    members: [
      { assistantId: "assistant-id-1" },
      { assistantId: "assistant-id-2" }
    ],
    membersOverrides: {
      "assistant-id-1": {
        model: {
          messages: [{ role: "system", content: "My dynamic prompt" }]
        }
      }
    }
  }
};
await vapi.start(squadConfig); // 400 Bad Request
Attempt 2 - Using assistantOverrides per member:
Copy code
const squadConfig = {
  squad: {
    members: [
      {
        assistantId: "assistant-id-1",
        assistantOverrides: {
          model: {
            messages: [{ role: "system", content: "My dynamic prompt" }]
          }
        }
      },
      {
        assistantId: "assistant-id-2",
        assistantOverrides: {
          model: {
            messages: [{ role: "system", content: "Another dynamic prompt" }]
          }
        }
      }
    ]
  }
};
await vapi.start(squadConfig); // 400 Bad Request
Attempt 3 - Using memberOverrides (singular):
Copy code
const squadConfig = {
  squad: {
    members: [
      { assistantId: "assistant-id-1" },
      { assistantId: "assistant-id-2" }
    ],
    memberOverrides: {
      model: {
        messages: [{ role: "system", content: "Dynamic prompt" }]
      }
    }
  }
};
await vapi.start(squadConfig); //400 Bad Request
What's the correct Web SDK payload structure for vapi.start() to inject dynamic prompts into squad members? Is there a difference between REST API and Web SDK formats? Thanks!