In this article, we will cover the following:
Accessing the Webhook Manager
To get started, log in to your IdealTraits account and navigate to the Marketplace. From the Marketplace menu, select Webhook Manager to open the tool.
Creating a Webhook
Inside the Webhook Manager, click the Add New button to begin setting up a webhook. You'll be prompted to complete the following required fields:
Webhook Name
Enter a clear, unique name to help you easily identify the purpose of the webhook.
Webhook URL
This is the destination where IdealTraits will send data when the selected event is triggered.
Event Trigger
Choose the specific action in IdealTraits that will activate the webhook. For example, selecting “New Candidate Applies” will send candidate data to your webhook URL as soon as someone applies.
Once both the Webhook URL and Event Trigger are set, the 'Test' button will become active. Click it to send a sample payload and verify that the webhook is functioning correctly. In order to add or update a webhook, you must first test it - the save button will remain disabled until a test is completed.
Error Notifications
Insert the email address(es) you want to receive notifications in the event the webhook fails. See more on webhook failures.
Webhook Status
Use this toggle to activate the webhook immediately, or leave it off if you’re not ready to use it yet.
Once saved, your webhook will appear in the Webhook Manager along with its status, trigger type, and log access for monitoring activity.
Webhook Credits
The number of active webhooks you can use is based on your current plan. Your usage (e.g., “1/1 Webhooks Added”) will be displayed at the top of the Webhook Manager. If you are needing more webhook credits, please reach out to our support team for assistance.
Event Triggers & Payloads
Candidate-Based Event Triggers:
New Candidate Applies
Candidate Stage Changes
Assessment is Complete
Candidate is Tagged
Video Interview Invitation is Sent
Video Interview is Complete
Note: The payload delivery for Video Interview is Complete trigger is delayed for 30 minutes while gathering transcripts
Candidate is Hired
Candidate is Archived
Example Use Cases:
Send applicant data to your HRIS, CRM, Payroll system or internal dashboards
Start a custom workflow in tools like Zapier or Make
Notify hiring managers when a candidate reaches a key stage
Trigger background checks or external interview scheduling tools
Update internal hiring metrics or dashboards in external systems
Payload:
Field Name | Description |
candidate_ID | IdealTraits unique identifier for the candidate |
First_name | Candidate first name |
Last_name | Candidate last name |
Candidate email | |
Phone_no | Candidate phone number |
Smstext_consent | Whether or not the candidate opted to receive mobile alerts pertaining to the job they applied to. Can be "Consented" or "Did not consent". |
Business_ID | IdealTraits unique identifier for the business account |
Source | Candidate apply source |
Location_applied | The company location the candidate applied to |
Webhook_tag | "New" for new candidates "Update" for existing candidates |
Candidate_tags | Any tags you’ve manually added to the candidate (ie. “Qualified”, “Needs Follow-up”). Blank means no tags have been added. |
Resume_URL | A URL link to the candidate’s resume. If blank, no resume was uploaded. |
Job_ID | IdealTraits unique identifier for the job applied |
Job_title | The title of the job the candidate applied to. If blank, the candidate may have been added manually. |
Position_name | The internal name of the position this candidate is associated with in your account. |
Star_rating | A star rating you (or your team) gave the candidate. If blank, no rating was given. |
|
|
Assessment_username | Candidate username for the assessment |
Assessment_ID | IdealTraits unique identifier for the assessment test |
Assessment_URL | The invitation URL sent to the candidate to take their assessment test. |
Assessment_current_page | The current page the candidate is on in their assessment test |
Assessment_summary_URL | A URL link to the candidate’s assessment results. |
Personality_profile_result | The candidate’s personality type result. |
Problem_solving_result | The candidate’s problem-solving result type. |
Problem_solving_score | The candidate’s problem-solving result score. |
Self_perception_motivation_drive | Represents the numerical value in the candidate’s personality index for Self-Perception: Motivation and Drive |
Self_perception_persuasive_convincing | Represents the numerical value in the candidate’s personality index for Self-Perception: Persuasiveness |
Self_perception_structure_routine | Represents the numerical value in the candidate’s personality index for Self-Perception: Structure and Routine |
Self_perception_thorough_compliance | Represents the numerical value in the candidate’s personality index for Self-Perception: Thoroughness and Compliance |
Under_pressure_motivation_drive | Represents the numerical value in the candidate’s personality index for Under Pressure: Motivation and Drive |
Under_pressure_persuasive_convincing | Represents the numerical value in the candidate’s personality index for Under Pressure: Persuasiveness |
Under_pressure_structure_routine | Represents the numerical value in the candidate’s personality index for Under Pressure: Structure and Routine |
Under_pressure_thorough_compliance | Represents the numerical value in the candidate’s personality index for Under Pressure: Thoroughness and Compliance |
Others_perception_motivation_drive | Represents the numerical value in the candidate’s personality index for Others Perception: Motivation and Drive |
Others_perception_persuasive_convincing | Represents the numerical value in the candidate’s personality index for Others Perception: Persuasiveness |
Others_perception_structure_routine | Represents the numerical value in the candidate’s personality index for Others Perception: Structure and Routine |
Others_perception_thorough_compliance | Represents the numerical value in the candidate’s personality index for Others Perception: Thoroughness and Compliance |
Short_answer_question_{1,2,3..} | Assessment short-answer question.
Short answer questions will appear as short_answer_question_1, short_answer_question_2, and so on, for the number of questions being asked in the assessment. |
Short_answer_{1,2,3..} | Assessment short-answer answer.
Short answer answer will appear as short_answer_1, short_answer_2, and so on, for the number of questions being asked in the assessment. |
PQQ_question_{1,2,3..} | Pre-qualifying question.
PQQ questions will appear as pqq_question_1, pqq_question_2, and so on, for the number of questions being asked in PQQ. |
PQQ_answer_{1,2,3..} | Pre-qualifying question answer.
PQQ answers will appear as pqq_answer_1, pqq_answer_2, and so on, for the number of questions being asked in PQQ. |
PQQ_score_{1,2,3..} | The score the candidate received for their answer (typically 0 or 10). If blank, the question may not have been scored or answered.
PQQ score will appear as pqq_score_1, pqq_score_2, and so on, for the number of questions with scoring, being asked in PQQ. |
Video_invite_date | The date and time a video interview invitation was sent to the candidate. |
Video_interview_status | Status of video interview, if video interview is sent to a candidate, this field will be "Sent", "In-Progress" or "Complete". |
Video_question_{1,2,3..} | Video Interview question.
Video Interview questions will appear as video_question_1, video_question_2, and so on, for the number of questions being asked in the video interview. |
Video_transcription_{1,2,3..} | Video Interview transcriptions.
Video Interview transcriptions will appear as video_transcription_1, video_transcription_2, and so on, for the number of questions being asked in the video interview. |
Archive_tag | The tag that was applied when the candidate was moved to the "Archived" stage. If blank, the candidate may not have been tagged with an archive tag, or is not in archive status. |
Offer_expiration_date | Offer letter expiration date if an offer letter was sent via the IdealTraits system. If blank, no offer letter was sent. |
Offer_created_date | Offer letter created date if an offer letter was sent via the IdealTraits system. If blank, no offer letter was sent. |
Offer_signed_date | Offer letter signed date if an offer letter was sent via the IdealTraits system. If blank, no offer letter was sent. |
Hired_date | Candidates Hired Date, if moved to hired status via the IdealTraits system. If blank, candidate was not moved to hired. |
Event Triggers & Payloads
Job-Based Event Triggers:
Job ad is posted/updated
Example Use Cases:
Sync job listings with external systems
Automate social media posts or email campaigns
Notify your team internal when a new position is posted
Payload:
Field Name | Description |
job_ID | IdealTraits unique identifier for the job posting |
Business_ID | IdealTraits unique identifier for the business account |
Job_title | The title of the job posting. |
Location | The company location associated with the job posting |
Date_posted | The datetime the job was posted |
Date_modified | The datetime the job was modified |
Job_status | The status of the job in IdealTraits. Can be Paused/Draft, Active, Sponsored, Expired or Archived |
Job_category | The job category assigned to the job posting |
Position_name | The position assigned to the job posting |
Remote_type | The remote type associated with the job. Can be Fully Remote, Hybrid Remote or No (in-office) |
Job_type | The job type. Can be Full-Time, Part-Time, Either Full-Time or Part-Time, or Contractor |
Salary_range | The salary / salary range listed on the job ad. Will be "-" if no salary is listed. |
Salary_per | The salary per is taken from the salary information listed on the job ad and can be hour, day, month or year. Will be blank if no salary is listed. |
Salary_type | The salary type selected on the job listing, for example: Annual Base Salary + Commission + Bonus Opportunities |
Job_description | HTML of the job description |
Job_responsibilities | HTML of the job responsibilities |
Job_requirements | HTML of the job requirements |
Job_benefits | HTML of the job benefits |
Job_url | URL for the job landing page and apply portal. |
Indeed_status | Can be free or sponsor |
Indeed_budget | Budget applied for indeed campaign, can be 0 if no sponsorship is applied. |
indeed_sponsor_duration | Duration selected for Indeed campaign, can be NULL if no sponsorship is applied. |
Ziprecruiter_status | Can be free or sponsor |
Ziprecruiter_budget | Budget applied for ZipRecruiter Boost, can be 0 if no sponsorship is applied. |
PQQ_question_{1,2,3..} | Pre-qualifying question.
PQQ questions will appear as pqq_question_1, pqq_question_2, and so on, for the number of questions being asked in PQQ. |
PQQ_question_{1,2,3..}_scoring | Indicates whether the question has scoring enabled, can be Y (scoring enabled) or N (scoring not enabled).
PQQ score will appear as PQQ_question_1_scoring, PQQ_question_2_scoring, and so on, for the number of questions with scoring, being asked in PQQ. |
Logs, Failures & Notifications
Webhook Logs
You can see how many times a payload was sent and view its full details by opening the action menu and selecting "View Logs."
Webhook Failures
If a webhook fails, IdealTraits will automatically retry up to five times. If all five attempts are unsuccessful, an alert will be sent to the email address(es) listed in the "Error Notification" field. After the final failed attempt, that specific record will be skipped, but future payloads will continue to send as normal.
Retrying Webhook Failures
To manually retry a failed webhook delivery, go to the Webhook Logs, locate the failed attempt, and click the 'Retry' button next to it. This allows you to resend the exact payload on demand.