Exact Extract: “After retrieving output from your search query, you should save it to a variable so that you can filter or modify the data as required.” The guide then shows Jinja being used to extract selected data from stored output: {{ vars.steps.Advanced_Search_Query.data.events | json_query( ' [].attributes.destGeoCountry ' ) | unique }}.
Exact Extract: “You can assign specific fields from your connector action output to their own variables and further manipulate the data using Jinja filters. This approach allows you to efficiently extract, clean, and prepare information for use in later steps of your automation.”
The correct answer is D because extract_artifacts is the FortiSOAR Jinja filter intended to parse unstructured or semi-structured text/data and extract observables/artifacts such as IP addresses, domains, URLs, email addresses, hashes, and similar indicator values. In this question, the source ingestion data has already been saved into vars.ingestion_data; the next requirement is not merely to format it or debug it, but to extract indicators from it. Option A only works if ingestion_data is already a structured list containing objects with type == " IOC " ; it does not generally parse raw ingestion data. Option B is badly chained and unreliable because each filter would transform the previous result rather than produce one clean indicator list. Option C only returns the data type for troubleshooting.
Technical Deep Dive: In FortiSOAR playbooks, Jinja filters are commonly used inside Set Variable steps, task descriptions, connector parameters, and decision logic. Use json_query when the data is already structured JSON and you know the exact path. Use extract_artifacts when you need FortiSOAR to scan the content and pull out indicator-like values. This is SOAR automation-layer parsing; FortiGate NP/CP acceleration has no role because no packet inspection or ASIC forwarding is occurring.