I’m having trouble with my Zapier workflow where JavaScript seems to run extra times. I have two separate automations that work fine individually, but when I combine them, things get duplicated.
Each automation processes form data from different sections and creates CRM records. The process goes like this:
- Form trigger with repeating fields
- JavaScript that splits comma-separated values into arrays
- Creates individual CRM tasks from each array item
When I try to merge both scripts, I get duplicate entries. Here’s my combined JavaScript:
if (inputData.salesAccountData == null) {
var accountList = [];
var quantityList = [];
var costList = [];
var commentsList = [];
var meetingTypeList = [];
} else {
var accountList = inputData.salesAccountData.split(",");
var quantityList = inputData.salesQuantityData.split(",");
var costList = inputData.salesCostData.split(",");
var commentsList = inputData.salesCommentsData.split(",");
var meetingTypeList = inputData.salesMeetingData.split(",");
}
var results = [];
var totalItems = accountList.length;
var counter = 0;
do {
var currentAccount = new String(accountList[counter]);
var currentQuantity = new String(quantityList[counter]);
var currentCost = new String(costList[counter]);
var currentComments = new String(commentsList[counter]);
var currentMeeting = new String(meetingTypeList[counter]);
var itemData = {};
itemData.accountName = currentAccount;
itemData.quantity = currentQuantity;
itemData.cost = currentCost;
itemData.comments = currentComments;
itemData.meetingType = currentMeeting;
results.push({ itemData });
counter++;
} while (counter < totalItems);
if (inputData.generalAccountData == null) {
var generalAccountList = [];
var generalCommentsList = [];
var generalMeetingList = [];
} else {
var generalAccountList = inputData.generalAccountData.split(",");
var generalCommentsList = inputData.generalCommentsData.split(",");
var generalMeetingList = inputData.generalMeetingData.split(",");
}
var results = [];
var totalItems = generalAccountList.length;
var counter = 0;
do {
var currentGeneralAccount = new String(generalAccountList[counter]);
var currentGeneralComments = new String(generalCommentsList[counter]);
var currentGeneralMeeting = new String(generalMeetingList[counter]);
var itemData = {};
itemData.generalAccount = currentGeneralAccount;
itemData.generalComments = currentGeneralComments;
itemData.generalMeeting = currentGeneralMeeting;
results.push({ itemData });
counter++;
} while (counter < totalItems);
I’m new to JavaScript and think I might be missing something basic. Why does this create duplicates and how can I fix it?