Problem
Solution (Workaround)
Structure of the Triggered or Scheduled Action
At the beginning, create the following variables:
ListName (display name of the SharePoint list)
ItemMetadata (metadata structure)
ElementTitle (title field structure / not strictly required)
Retrieve the ListItemEntityTypeFullName of your list so you can populate __metadata correctly.
Request (read):
https://{site_url}/_api/web/lists/GetByTitle('{List Name}')?$select=ListItemEntityTypeFullName
Replace {site_url} with the site URL.
Use the list’s display name (same as your variable {List Name}).
Dynamic expressions are valid — just ensure there are no extra spaces in the URL.
In Teamsware, use Send HTTP request with the following parameters:
URL (dynamic):
${[[@Web.Url]]}/_api/web/lists/getbytitle('${[[@Variables.ListName]]}')/items(${[[ID]]})
[[ID]] = current item ID from the trigger context
[[@Web.Url]] = site URL
[[@Variables.ListName]] = your list variable
Method: POST
(Yes, POST — combined with X-HTTP-Method: PATCH in the headers.)
Headers:
Content-Type: application/json;odata=verbose
Accept: application/json;odata=verbose
X-HTTP-Method: PATCH
IF-MATCH: *
IF-MATCH: * ignores the ETag check (forces update)
Alternative: IF-MATCH: [[{ItemETag}]] if you want proper concurrency control
Body (data):
=JSON.stringify([[@Variables.ItemMetadata]])
Important: Use exact JSON serialization (JSON.stringify) so the body is sent as valid JSON.
“The property ‘__metadata’ does not exist on type…”
The type specified in __metadata is incorrect. Retrieve the ListItemEntityTypeFullName from the exact same list. Verify the display name (case sensitivity, special characters).
“A type named ‘SP.Data.*’ could not be resolved…”
Wrong site context (different Site URL) or the list does not exist at the specified URL.
“405 Method Not Allowed” or “Verb not supported”
Either X-HTTP-Method: PATCH is missing, or you set Method = PATCH without the required header.
In Teamsware / SharePoint REST, PATCH typically works via POST + X-HTTP-Method: PATCH.
No downstream triggers are firing
Check whether your trigger listens to ItemUpdated / “When an item is modified.”
Ensure the relevant fields were actually changed.
Verify you are targeting the correct list/site.
Concurrency error (ETag mismatch)
Use IF-MATCH: * (forces overwrite), or retrieve the current ETag beforehand and set it explicitly.
Data type conflicts
Ensure field values match the correct types:
Number → without quotes
Boolean → true / false
Lookup → FieldNameId
etc.