Button Deluge not working

Button Deluge not working

Please let me know if I need to post this somewhere else - this is my first time using the forums.

I am attempting to build a button with a function that uses a multi-select lookup to build a list of interested buyers for properties based on the zip code of the property and the zip codes in our buyer data, pulling in all buyers with matching zipcodes in their specific areas field (a text field that has zip codes and cities separated by commas).

I do not have any experience in coding with deluge and have been running into a wall after a few hours of using ChatGPT to help me implement this functionality. 

Please see the current script below:
string button.search_contacts_by_zip(String dealId)
{
dealLong = dealId.toLong();
dealRecord = zoho.crm.getRecordById("Deals",dealLong);
if(dealRecord == null)
{
return "No Deal found for ID: " + dealId;
}
dealZip = ifnull(dealRecord.get("Zip_Code"),"").trim();
if(dealZip == "")
{
return "No Zip on this Deal.";
}
// Attempt partial match using :like:
searchQuery = "(Zip_Codes:like:\"" + dealZip + "\")";
contactMatches = zoho.crm.searchRecords("Contacts",searchQuery);
info "contactMatches => " + contactMatches;
// Debug
if(contactMatches.isEmpty())
{
return "No contacts found with '" + dealZip + "' in Specific Areas.";
}
matchingIds = list();
for each  c in contactMatches
{
cId = c.get("id");
// <--- must be "id" here
if(cId != null)
{
matchingIds.add(cId.toLong());
}
}
updateMap = Map();
updateMap.put("Matching_Buyers",matchingIds);
updateResp = zoho.crm.updateRecord("Deals",dealLong,updateMap);
return "Matched " + matchingIds.size() + " buyer(s) for " + dealZip + ".";
}