Help

The Community will be temporarily unavailable starting on Friday February 28. We’ll be back as soon as we can! To learn more, check out our Announcements blog post.

Receving error 400 with PUT request into external server

968 1
cancel
Showing results for 
Search instead for 
Did you mean: 
Richard_Quintan
5 - Automation Enthusiast
5 - Automation Enthusiast

Hello there, 

I've developed a workflow that follows these steps:

1) When a record is updated, all the product's fields are watched

2) With these watched fields, a new script will run. The main goal with this script is taking the product's information, then making a PUT request to an external JSON API by taking the product's SKU.

When I test the script, it runs successfully, but the response logs: 

{status: 400, message: "Invalid data provided"}
  1.  status: 400
  2.  message: "Invalid data provided"

Does anyone knows why this is happening? Is it an error in Airtable or in the external API server? Thanks in advance!

The code goes like this:

 

//input of modified product

let inputConfig = input.config();

//Fetch for external API and JSON creation

let response = await fetch(`http://.../${inputConfig.sku[0]}`, {
    method: 'PUT',
    body: JSON.stringify({
      "product": {
        "ean": inputConfig.ean[0],
        "sku": inputConfig.sku[0],
        "name": inputConfig.name[0],
        "brand": inputConfig.brand[0],
        "short_description": inputConfig.short_description[0],
        "description": inputConfig.description[0],
        "cost_price": inputConfig.cost_price[0],
        "price": inputConfig.price[0],
        "gd_size_reference": inputConfig.gd_size_reference[0],
        "track_inventory": inputConfig.track_inventory[0],
        "available_on": inputConfig.available_on[0],
        "tax_category_id": inputConfig.tax_category_id[0],
        "stock_items_attributes": [
          {
            "stock_location_id": inputConfig.stock_location_id[0],
            "count_on_hand": inputConfig.count_on_hand[0],
          }
        ],
        "taxon_ids": [
          {
            "taxon_id": inputConfig.taxon_ids[0],
          }
        ], 
      }
    }),
    headers: {
        'Authorization': 'eyJh...',
    },
});
console.log(await response.json());

 

 

1 Reply 1
Sho
11 - Venus
11 - Venus

Perhaps JSON does not match the data structure of the external API.
Need to check the documentation.