Extracting specific content block from Anthropic Claude API response with multiple content blocks

:bullseye: What is your goal?

I’m calling the Anthropic Claude API via Make’s HTTP module (Parse Response: OFF) as part of an automated daily intelligence brief pipeline. The scenario chain is:
Notion → HTTP (Claude API) → JSON Parse → Set Variable → JSON Parse → Markdown → Gmail
Claude is configured to use web search tools, which means the API response returns multiple content blocks in the content array — typically one or more tool_use blocks followed by a final text block containing my JSON output.

Example Response Structure
{ “content”: [ {“type”: “tool_use”, “name”: “web_search”, …}, {“type”: “tool_use”, “name”: “web_search”, …}, {“type”: “text”, “text”: “{"date":"April 6, 2026"…}”} ] }

What I Need
A reliable Make-native method to extract specifically the content block where type = “text” and pass its text value into a downstream JSON Parse module — regardless of how many tool_use blocks precede it and regardless of array position.

What is the correct Make-native approach to filter an array and extract the item where a specific field equals a specific value?

:thinking: What is the problem & what have you tried?

What I’ve Tried
• Array index selection (unreliable — position varies by run)
• last() function (inconsistent)
• map() function (advised against in Make)
• Set Variable with Content: text array notation (iterates all blocks, fails validation downstream)

Environment
• Make Core plan
• HTTP module v4, Parse Response OFF
• Anthropic Claude API, model claude-sonnet-4-6
• Response includes web_search tool use blocks

Hey Matthew,

map the array in an iterator and put a filter after it to only allow bundles where type is text.

Also, Parse Response: ON is essentially a built in Parse JSON module. So if you are going to feed the response in a Parse JSON anyway, might as well have the HTTP module do it.