We’re using Asana’s custom task type feature (specifically a “Next Action” type with custom status options) and running into a hard wall when trying to create or update tasks with that type via the API.
Both POST /tasks and PUT /tasks/{task_gid} return: “The custom type feature is not supported on this route.”
create_project_preview (via MCP) appears to apply custom types correctly at the project level, so the underlying capability exists — it just isn’t exposed on individual task creation and update routes.
Use case: We’re building an AI-assisted task creation workflow where commitments captured from meetings are proposed for review and then created directly in Asana. Without API support for custom types, every task lands as the default type and requires a manual conversion step.
Request: Extend POST /tasks and PUT /tasks/{task_gid} to accept custom_type and custom_type_status_option fields, consistent with how they’re returned in GET /tasks responses.
Hi @Jarrod_Kopp2! Could you share the exact request body you’re sending to PUT /tasks/{task_gid} when you receive this error? That would help confirm what’s going on.
I’m asking because, while it’s expected for the POST endpoint to return this error, you should be able to set the Task Type and Task Type Option using the PUT endpoint. For example:
curl --request PUT \
--url https://app.asana.com/api/1.0/tasks/<TASK_GID> \
--header 'accept: application/json' \
--header 'authorization: Bearer <ASANA_PAT>' \
--header 'content-type: application/json' \
--data '{
"data": {
"custom_type": "<CUSTOM_TYPE_GID>",
"resource_subtype": "custom"
}
}'
One important detail that can easily cause PUT request to fail is that when updating a task’s type or type option via the API, resource_subtype must be set to custom. If it’s missing or set to a different value, the request will fail with message:
You can only set custom_type if task resource_subtype is custom.
I’m also going to submit a feature request to support creating tasks with the desired Custom Type directly via the POST endpoint. From what I can tell, the current behavior is intentional and was likely designed with future support in mind, but it’s worth flagging with the team to revisit.
Thanks for raising this, and let me know whether the above helps.
Best,
Dominik
1 Like
Here you go:
When attempting to set the task type via the API, the connector tool I’m using routes custom_type and resource_subtype through a custom_fields map rather than as top-level body parameters. The actual request body being sent looks like this:
{
"data": {
"custom_fields": {
"custom_type": "1214062129390894",
"resource_subtype": "custom"
}
}
}
This returns the error: "Custom field with ID custom_type is not on given object"
Based on your documentation, the correct request body should be:
{
"data": {
"custom_type": "1214062129390894",
"resource_subtype": "custom"
}
}
The connector tool does not support passing arbitrary top-level fields in the request body — only the custom_fields map. Is there a way to set custom_type via the custom_fields map, or does it strictly require top-level placement in the PUT body?
Thanks for the additional context. Based on our API reference, it’s not possible to set custom_type or resource_subtype via the custom_fields parameter. Custom Fields are a separate object in our data model and aren’t linked to a task’s Custom Type or Resource Subtype.
Given that, I’d recommend reaching out directly to the support team or owner of the connector you’re using to ask for guidance on how (or if) these fields can be updated, or to submit a feature request on their side. In this case, the limitation appears to be with the connector itself rather than the Asana API.
Sorry I can’t be more helpful here, but please let me know if you have any follow-up questions.
1 Like