needs-input and routes the question to the appropriate stakeholder. Rather than blocking the entire queue, dotbot sends the question out-of-band via Microsoft Teams, email, or Jira, waits for a reply, and then resumes the task automatically once an answer arrives. This keeps pipelines moving without requiring the team to monitor the dashboard in real time.
This page covers the client side: the mothership settings block and how dotbot routes a question to Teams. The server that delivers questions and collects answers is documented separately in Question delivery service.
Why human-in-the-loop matters
AI models can resolve most questions by reading the codebase, product documents, and task context. But some decisions require human judgment — a stakeholder who knows the business constraint, the architect who owns the design, or the product owner who decides between competing priorities. Without a structured way to ask those questions, the AI either guesses (introducing risk) or halts the pipeline entirely. Theneeds-input mechanism gives the AI a safe escape hatch: pause the task, ask the right person, and continue when the answer arrives — without blocking any other tasks that do not depend on this one.
How the flow works
1
Task reaches needs-input
The AI determines it cannot proceed without more information and calls the
task_set_status MCP tool to move the task to needs-input. dotbot records the question on the task as a pending_question and pauses it, removing it from the active execution queue.2
Question is sent to the stakeholder
dotbot’s notification client reads the
mothership settings block and sends the question to the configured channel (teams, email, or jira) along with the available choices.3
Stakeholder answers
The stakeholder replies directly in Teams via an Adaptive Card, by email, or via a Jira comment. The question delivery service stores the answer in Azure Blob Storage.
4
dotbot resumes the task
dotbot polls the server on the configured
poll_interval_seconds interval. When an answer arrives, it attaches the answer to the paused task and promotes it back to the active queue.Configuring Microsoft Teams integration
Add themothership block to your settings.default.json and set channel to teams:
settings.default.json
Setting up the server_url and api_key
To use Teams (or any other notification channel), you need a deployed mothership server. Once your server is running, set its URL and API key insettings.default.json:
settings.default.json
What stakeholders see
When a question is routed to Teams, the recipient receives an Adaptive Card that includes the project name, the question text, and a set of choices to select from. Clicking a choice submits the answer directly — no separate login or dashboard access is required. The architecture is:Question types
The question delivery service supports five question types. Aneeds-input task picks the type that fits the decision it needs:
When a stakeholder responds, the service stores the answer in Azure Blob Storage. dotbot reads it during the next poll cycle and attaches it to the paused task before resuming. For the answer record format and the server side of this flow, see Question delivery service.
Other routing options
- Email
- Jira
Set
channel to email and populate recipients with email addresses. dotbot sends a formatted message with answer choices and resumes when a reply is received.