Planner Introduction
Microsoft Planner Connector
The CloudTools Planner connector brings Microsoft 365 plans, buckets, and tasks into Salesforce. Discover plans for a user or group, organize buckets, create and update tasks, and work with plan and task details. Use the connector in supported Salesforce Flow automations or custom Apex and Lightning Web Component experiences.
This introduction covers capabilities and integration planning. Individual action references describe permissions, inputs, outputs, examples, and implementation limits.
Plans, buckets, tasks, and identifiers
A plan organizes work within a container, such as a Microsoft 365 group. A bucket organizes tasks within a plan. A task holds scheduling, priority, and completion information; task details hold description, references, and checklist data. Plan details hold sharing and category descriptions. Retain the Microsoft Graph IDs and relationships needed for later operations; Salesforce record IDs and browser links are not substitutes.
Collection lookup helpers find an item by ID in previously retrieved data. They do not fetch resources or require a Microsoft connection.
What you can build
Build project planning experiences, create tasks from Salesforce workflows, organize work into buckets, and report on returned task status. Your application controls the relationship between Salesforce records and Planner resources. Actions do not automatically save returned metadata, synchronize records, or establish ongoing two-way updates.
The Graph Planner API covers basic plans; premium plans and tasks are unavailable through this API. See the Microsoft Planner API overview for supported capabilities and concurrency rules.
Connection and authorization
Use a CloudTools Connector record with Connector Type set to Microsoft 365. For interactive access, choose OAuth Delegated (Authorization Code) and complete Microsoft sign-in. For endpoints supporting unattended access, choose OAuth Application (Client Credentials), grant application permissions and administrator consent, and supply any target user identifier required by the action.
Permissions and authorization support depend on the endpoint. The identity must also have access to the plan and its container. Each Graph action declares its permission alternatives; connection support depends on the endpoint. User-plan listing is delegated-only. A Named Credential does not remove Microsoft’s permission requirements. Use Creating an Entra ID App and Integration Connectors for setup, then consult the individual action’s Microsoft reference.
Use in Salesforce Flow
For operations supporting application access, configure a Microsoft 365 application connector as Set as default for Flow automations. Delegated connections are not supported for CloudTools Flow automation. Supply the required identifiers and body values, retain useful outputs, and add fault handling.
Graph actions process only the first input request. List actions return an outer list containing one resource collection; most individual resource actions return a list with one item or an empty list. Get Plan Details also wraps its result in an outer list. Collection lookup helpers process every input request and preserve null matches. Check each action’s result shape before wiring subsequent Flow steps.
Use in custom development
Subscriber Apex uses the Apptigent namespace and the global methods and input types documented for each action. Arrange authorization first, run Graph operations in a context that permits callouts, and handle exceptions and empty results. Global invocable inputs do not expose connectorId.
Lightning Web Components can use msPlannerConnectorLib through MSPlannerConnectorController. The library supplies request factories, authorization helpers, and mapped results. Pass an explicit connector ID as the second function argument, or provide request.connectorId. JavaScript DTOs can differ from global Apex models; rawJson contains the serialized mapped model rather than the untouched Graph response.
Planning your workflow
Begin with the appropriate user or group plans, retain the plan ID, then retrieve its buckets and tasks. The Get All Plans action calls /planner/plans directly and does not enumerate tenant groups or users; supply the owner filter required by Microsoft. List operations do not follow or expose pagination links, and query options are forwarded without checking endpoint support.
Planner changes use resource ETags for concurrency. Retrieve the current resource and use its odataEtag as If-Match where supported. Details have their own ETags. Plan and bucket delete actions currently expose no If-Match input and can be rejected by Microsoft. Successful updates can return an empty list because the implementation does not request a response representation; read the resource again when updated data is needed.
Check mapped output limits, JSON patch requirements, supported writable properties, and Salesforce callout and heap limits. Task creation and task detail updates are separate operations. Inspect resource state before retrying a mutation with an uncertain outcome.