Search code examples
javascripttriggerszapier

Zapier Zap doesn't run when it is supposed to


I created a zap that was supposed to run when a new lead is added on our platform and save it to google sheets. When I test the trigger it is working correctly . However when I turn on the zap it doesn't trigger when a new Lead is added . Even when I run it manually by "Run Zap" It says that there are no new leads ,but there are . When I go to test the trigger by clicking "load more" it gets the new lead with no problem . I tried turning the zap on and off - nothing seems to work. Here is the code I am using for the request .

const currentDate = new Date();
const year = currentDate.getFullYear();
const month = currentDate.getMonth() + 1;
const day = currentDate.getDate();


const options = {
  url: 'api_url',
  method: 'GET',
  headers: {
    'Content-Type': 'application/json',
    'Accept': 'application/json',
    'x-api-key': bundle.authData['api-key'],
    'client_id': bundle.authData['client_id']
  },
  params: {
    'year': year,
    'month': month,
    'day': day,
    'page_size': '1000'
  }
}



return z.request(options)
  .then((response) => {
    response.throwForStatus();
    const results = response.json;

    // You can do any parsing you need for results here before returning them
    for(let i = 0; i < results.data.length; i++){
      
      if(typeof results.data[i].id === 'undefined'){
        results.data[i].id = i;
      }
      
      //formating page urls
      let charArr = results.data[i].page_url_list.split('');
      for(let j = 0; j < charArr.length; j++){
        if(charArr[j] === /\n/ || charArr[j] === /\r/){
          charArr[j] = " ";
        }
      }
      
      const jsonObj = JSON.parse(charArr.join(''));
      const URLS = [];
      for(let k = 0; k < jsonObj.pages.length; k++){
        URLS.push(jsonObj.pages[k].page_url + "\n");
      }
      
      results.data[i].page_url_list = URLS.toString();
      
      
      //formating the timestamp 
      results.data[i].time = new Date(Number(results.data[i].time));
      
    }

  return results.data;
});

Solution

  • I just set results.data[i].id = results.data[i].time and the zap is now working correctly