2

I am trying to send the emails via Sendgrid using v3 API using postman, I have created 3 separate variables in 3 different requests, I want to pass all those 3 variables in a single mail, for that I have used below sendgrid https://api.sendgrid.com/v3/mail/send
with below body

{
  "personalizations": [
    {
      "to": [
        {
          "email": "testing@test.com",
          "name": "API Testing"
        }
      ],
      "subject": "API testing successful"
    }
  ],
  "from": {
    "email": "noreply@testApi.com",
    "name": "API Testing"
  },
  "content": [
    {
      "type": "text/plain",
      "value": "{{variable1}}"  //In variable1 has a dynamic values
    }
  ]
}

but the above format sending the mail body as {{Variable1}}, can someone help me on this?

Rajashekar
  • 23
  • 1
  • 7
  • Can update the question with details about the variables being used and how you're setting this up in Postman. Feels like the question is missing half the details. – Danny Dainton Dec 23 '19 at 11:23
  • *I want to pass all those 3 variables in a single mail* This is contradictory statement with the code shown in the question. What are these three variables? do you want to call a same request three times with a different data? – Divyang Desai Dec 23 '19 at 11:25

2 Answers2

1

For handlebar {{ variable_value }} substitutions in dynamic HTML templates, u need to pass the variable value as JSON structure with the key as "dynamic_template_data" as part of personalizations. U also need to pass the (API Key) Authorization as "Authorization: and Value as "Bearer ". In the Request Body pass the personalizations object.

{
"personalizations": [
    {
        "to": [
            {
                "email": "ron@***",
            }
        ],
        "dynamic_template_data": {
            "<variable_name>": <variable_value>
        }
    }
],
"from": {
    "email": "development@crosspaymt.com",
    "name": "Development Team"
},
"content": [
    {
        "type": "text/html",
        "value": "replace body with template content"
    }
],
"template_id": "******"

}

0

From what I understand of the question you want to send multiple requests with different values.

Say, GET to https://google.com/q={{search}} and you have multiple search queries, (dog, chess, marvel, stackoverflow)

  • Create a collection in postman
  • Add a GET request to https://google.com/q={{search}} with necessary headers and hit Save
  • Create a CSV file with the header search and all search values under it
  • Hit the run button for the newly created collection
  • Set the Iterations field to the number of queries you have. In this example it is 4
  • Look for the field Data, select the created CSV file
  • Ensure the data is correctly being picked up by hitting the Preview button
  • Hit Run test
  • You can view the output in the Postman Console

postman runner

To open Postman Console Head to View in the application menu, and click on "Show Postman Console" or use the keyboard shortcut (CMD/CTRL + ALT + C) to open.

codeblooded
  • 320
  • 1
  • 9
  • Thanks for your comment @codeblooded, but that was not what I am looking for, I have found my answer by doing some trial and errors, I have created a variable in Globals in every request like **pm.globals.set("variable1", responseCode.code);** {This is for capturing response code in a variable} in Tests and pass that variable in the required body. – Rajashekar Jan 03 '20 at 14:25