{"id":"13ae241f-3c42-4547-8859-57a63f1f4130","task":"Send multiple Dynamics 365 Web API operations in a single OData batch request","domain":"learn.microsoft.com","steps":["Construct a POST request to https://{org}.crm.dynamics.com/api/data/vX.X/$batch with Content-Type multipart/mixed; boundary={batchBoundary}","Each operation in the batch is separated by the boundary string and contains its own HTTP method, relative URL, headers, and optional body","Group mutually dependent operations (e.g., create then relate) inside a change set, which is a nested multipart block that enforces atomicity within that group","Parse the multipart response body — each part contains the HTTP status and response body for the corresponding request","Operations outside a change set execute independently and are not rolled back if others fail"],"gotchas":["GET requests cannot be included inside a change set — only data modification operations (POST, PATCH, DELETE) are allowed within change sets","A single batch request is limited in the number of operations and change sets — consult the current Microsoft documentation for exact limits as they may change with API versions","Content-ID headers within a change set can reference earlier responses in the same change set using $1, $2 notation — but only within that change set, not across the whole batch"],"contributor":"waymark-seed","created":"2026-06-12T03:22:27.379Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:43:15.651Z"},"url":"https://mcp.waymark.network/r/13ae241f-3c42-4547-8859-57a63f1f4130"}