If you're using Zoho Recruit to manage your hiring process, you can automate interview scheduling by integrating it with Zoho Bookings. This eliminates manual coordination, reduces administrative effort, and ensures that interview details are automatically synchronized between both applications.
In many recruitment processes, scheduling interviews involves multiple emails, calendar coordination, manual interview creation, and status updates. These repetitive tasks consume valuable time and increase the chances of manual errors.
This guide demonstrates how to integrate Zoho Recruit with Zoho Bookings to automate the entire interview scheduling process, from inviting candidates to book an interview to automatically creating the interview record and updating the application status in Zoho Recruit.
Get started with Zoho Bookings to automate your interview scheduling process.
Consider the following recruitment workflow:
Although this process is straightforward, it requires several manual steps for every candidate.
By integrating Zoho Recruit with Zoho Bookings, the entire workflow can be automated, saving time while maintaining accurate recruitment records.
The following video demonstrates the complete interview scheduling workflow, from updating the application status in Zoho Recruit to allowing the candidate to book an interview and automatically creating the interview record.
Before implementing this Zoho Recruit and Zoho Bookings integration, ensure you have:
This solution uses the default Interview to be Scheduled application status available in Zoho Recruit.
When a candidate reaches this stage, configure a workflow to automatically send an interview scheduling email containing your Zoho Bookings booking link.
Create the following custom fields in the Interviews module.
| Field | Type |
| Booking ID | Single line |
| Meeting URL | URL |
These fields store the booking reference and the online meeting link created during scheduling.
Create a custom field in your booking form to store the Zoho Recruit Application ID.
This value is passed from Zoho Recruit and allows the automation to identify the corresponding application record after the interview is booked.
Navigate to Workflows from the left sidebar and click Create Workflow.
Configure the workflow as follows:
The custom function retrieves the Recruit Application ID, creates the interview record, stores the booking ID and meeting URL, and updates the application status automatically.
Add the following Deluge function to the Booked workflow in Zoho Bookings.
Before using the code, replace the placeholder values (such as the Recruit connection name, interviewer mapping, custom field API names, and data center) with the values applicable to your Zoho environment.
// Fetch Application ID and appointment details from Zoho Bookings
applicationID = bookingInfo.get("customer_more_info").get("Application ID");
interviewStartTime = bookingInfo.get("start_time").totime().tostring("yyyy-MM-dd'T'HH:mm:ss");
interviewEndTime = bookingInfo.get("end_time").totime().tostring("yyyy-MM-dd'T'HH:mm:ss");
meetingURL = bookingInfo.get("meeting_info").get("join_link").toString();
bookingID = bookingInfo.getJSON("booking_id").toString();
staffEmail = bookingInfo.get("staff_email");
// Map Zoho Bookings staff with the corresponding Zoho Recruit user
interviewerID = "";
if(staffEmail == "STAFF_EMAIL_1")
{
interviewerID = "RECRUIT_USER_ID_1";
}
else if(staffEmail == "STAFF_EMAIL_2")
{
interviewerID = "RECRUIT_USER_ID_2";
}
// Fetch the Application record from Zoho Recruit
applicationResponse = invokeurl
[
url :"https://recruit.zoho.com/recruit/v2/Applications/" + applicationID
type :GET
connection:"YOUR_RECRUIT_CONNECTION"
];
applicationData = applicationResponse.get("data").get(0);
// Retrieve Candidate and Job Opening details
candidateID = applicationData.get("$Candidate_Id");
candidateName = applicationData.get("Full_Name");
jobOpeningID = applicationData.get("$Job_Opening_Id");
jobOpeningName = applicationData.get("Job_Opening_Name");
// Prepare lookup values
candidateLookup = Map();
candidateLookup.put("id",candidateID);
jobOpeningLookup = Map();
jobOpeningLookup.put("id",jobOpeningID);
interviewerLookup = Map();
interviewerLookup.put("id",interviewerID);
// Prepare Interview record
interviewRecord = Map();
interviewRecord.put("Interview_Name","Interview - " + candidateName);
interviewRecord.put("Candidate_Name",candidateLookup);
interviewRecord.put("Job_Opening_Name",jobOpeningLookup);
interviewRecord.put("Interviewer",interviewerLookup);
interviewRecord.put("Start_DateTime",interviewStartTime);
interviewRecord.put("End_DateTime",interviewEndTime);
// Replace these with the API names of your custom fields
interviewRecord.put("Booking_ID",bookingID);
interviewRecord.put("Meeting_URL",meetingURL);
interviewList = List();
interviewList.add(interviewRecord);
requestBody = Map();
requestBody.put("data",interviewList);
// Create Interview record in Zoho Recruit
interviewResponse = invokeurl
[
url :"https://recruit.zoho.com/recruit/v2/Interviews"
type :POST
parameters:requestBody.toString()
headers:{"Content-Type":"application/json"}
connection:"YOUR_RECRUIT_CONNECTION"
];
info interviewResponse;
// Update Application Status
applicationRecord = Map();
applicationRecord.put("id",applicationID);
applicationRecord.put("Application_Status","Interview Scheduled");
dataList = List();
dataList.add(applicationRecord);
requestBody = Map();
requestBody.put("data",dataList);
response = invokeurl
[
url :"https://recruit.zoho.com/recruit/v2/Applications"
type :PUT
parameters:requestBody.toString()
headers:{"Content-Type":"application/json"}
connection:"YOUR_RECRUIT_CONNECTION"
];
info response;
When a candidate books an interview through Zoho Bookings:
The recruiter no longer needs to manually create interview records or update the application status, making the recruitment process faster and more reliable.
After the candidate confirms the interview appointment:
This solution demonstrates one practical approach to automating interview scheduling between Zoho Recruit and Zoho Bookings. Depending on your recruitment process and business requirements, the workflow can be extended and customized to support additional use cases.
If you have a similar recruitment or scheduling requirement and would like to explore whether it can be implemented using Zoho Bookings, feel free to reach out to us at hello@zohobookings.com . We'd be happy to hear your use case and help evaluate its feasibility.
A. Yes. By integrating Zoho Recruit with Zoho Bookings and using a custom Deluge function, interview records can be created automatically whenever a candidate books an interview.
A. Yes. Once the interview record is successfully created, the automation updates the application status to Interview Scheduled.
A. Yes. The solution supports online meeting integrations, allowing the meeting URL to be stored in the Interview record for quick access.
Integrating Zoho Recruit with Zoho Bookings provides a simple and effective way to automate interview scheduling, reduce manual effort, and improve recruitment efficiency.
By automating Interview creation, synchronizing booking information, and updating the application status automatically, recruiters can spend less time on administrative tasks and focus more on hiring the right candidates.
If you need assistance implementing this solution or have a similar automation requirement, feel free to contact us at hello@zohobookings.com.