```dart const getTodo = 'getTodo'; const getPost = 'getPost'; String graphQLDocument = ''' query GetPostAndTodo(\$todoId: ID!, \$postId: ID!) { $getTodo(id: \$todoId) { id name } $getPost(id: \$postId) { id title rating } } '''; final multiOperationRequest = GraphQLRequest( document: graphQLDocument, variables: { 'todoId': someTodoId, 'postId': somePostId }, ); ``` Notice here that `modelType` and `decodePath` are omitted. When these decoding variables are omitted, the plugin simply returns the result as a raw `String` from the response. Once you have the response data in a `String`, you can parse it using `json.decode()` and pass the resulting `Map` to the model's `fromJson()` method to create an instance of the model. ```dart // Do not forget to add this to imports for json.decode import 'dart:convert'; ... Future queryMultiOperationRequest(GraphQLRequest operation) async { final response = await Amplify.API.query(request: multiOperationRequest).response; if (response.data != null) { final jsonData = (json.decode(response.data) as Map).cast(); final post = Post.fromJson((jsonData[getPost] as Map).cast); final todo = Todo.fromJson((jsonData[getTodo] as Map).cast); } } ```