I was trying to set a function that auto-schedules calls based on their call result; i.e "Requested more info". I had also included a reminder to send an email in the code. I logged a test call and nothing changed. Is there anything wrong with the code I used?
void automation.FollowUp_Call_Function(String callId)
{
// Retrieve 'callId' from function arguments
callId = ifnull(input.callId,"");
// Ensure callId is present
if(callId == "")
{
info "Error: callId is missing. Make sure it's being passed from the workflow.";
return;
}
// Fetch the call record details
callDetails = zoho.crm.getRecordById("Calls",callId);
if(callDetails.isEmpty())
{
info "Error: No call record found with the given callId.";
return;
}
callResult = callDetails.get("Call Result");
callDate = zoho.currentdate;
// Initialize follow-up date and time
followUpDate = null;
followUpTime = null;
if(callResult == "Requested call back")
{
followUpDate = callDate.addDay(1);
// Default: Next day
followUpTime = "10:00 AM";
// Default time
}
else if(callResult == "Requested more info")
{
followUpDate = callDate.addDay(7);
followUpTime = "10:00 AM";
reminderTask = Map();
reminderTask.put("Subject","Follow-up: Send Email");
reminderTask.put("Due Date",callDate.toString() + " 2:00 PM");
reminderTask.put("Task Owner",callDetails.get("Owner"));
reminderTask.put("Description","Reminder: Send an email for more info.");
reminderTask.put("$se_module","Calls");
reminderTask.put("What_Id",callId);
zoho.crm.createRecord("Tasks",reminderTask);
}
else if(callResult == "No response/Busy")
{
followUpDate = callDate.addDay(7);
followUpTime = "10:00 AM";
// Default time
}
else if(callResult == "Invalid number")
{
reminderTask = Map();
reminderTask.put("Subject","Follow-up on Invalid Number");
reminderTask.put("Due Date",callDate.addDay(7).toString());
reminderTask.put("Task Owner",callDetails.get("Owner"));
reminderTask.put("Description","Reminder: Follow up on the invalid number.");
reminderTask.put("$se_module","Calls");
reminderTask.put("What_Id",callId);
zoho.crm.createRecord("Tasks",reminderTask);
}
// Create follow-up call
if(followUpDate != null)
{
callData = Map();
callData.put("Subject","Follow-up Call");
callData.put("Call Type","Outbound");
callData.put("Call Result","Scheduled");
callData.put("Call Start Time",followUpDate.toString() + " " + followUpTime);
callData.put("Who_Id",callDetails.get("Who_Id"));
zoho.crm.createRecord("Calls",callData);
}
}