bulk_create_tasks
Add a list of up to 50 tasks to an existing Onplana project in one call, at the project root or under a sprint / epic. Fits "add these tasks to my launch project" or a checklist pasted into the chat. Single transaction (all-or-nothing), in place of calling create_task N times; add_subtasks covers new tasks that are children of an existing task. THIS TOOL DOES NOT SCHEDULE. Tasks land with NO dates unless startDate and dueDate are set on each one, and there is no way to express durations or predecessors here at all. A schedule (phase durations, effort estimates, "task 5 depends on task 3", a critical path) sent through this tool arrives as a flat dateless list, and the Gantt, timeline and critical path are all empty. Use instantiate_plan instead, which takes estimatedDays per task and computes real start and due dates from them. It accepts a projectId, so it works on a project that already exists. Neither tool accepts predecessors: create the tasks first, then add each dependency with link_dependency. The result includes url for the project (and one per task). ALWAYS show the project link in your reply so the user can open what you just created.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| tasks | Yes | 1-50 tasks. Each needs a title; optional description / status / priority / estimatedHours / startDate / dueDate (YYYY-MM-DD) / isMilestone / recurringRule / collaborators. | |
| epicId | No | Optional epic to group them under (must belong to the project). | |
| sprintId | No | Optional sprint to put them in (must belong to the project). | |
| projectId | Yes | Project to create the tasks in. | |
| idempotencyKey | No | Optional idempotency key. Pass a stable unique value (e.g. a UUID) to make this create safe to retry: calling again with the same key within 24h - even from a new session after a reconnect - replays the original result and creates no duplicate. Org-scoped; works across conversations. |