Currently, all features are free. You can try some features without creating an account.
*This information is for developers.
Using the Webhook feature, Itemath will send a POST request with various information to a specified URL when schedules are confirmed or canceled.
When creating a scheduling URL or configuring a template, turn on "Use Webhook" and fill in the required information.
Webhook Notification URL | Specify an https endpoint that can receive POST requests from Itemath when schedules are confirmed or canceled. This needs to be prepared in advance. |
Webhook Identification Token | Optional. Use this to verify that the Webhook is from Itemath or as an identification code when using the same Webhook notification URL for multiple scheduling pages. |
Itemath's Webhooks use the POST method. The request body is based on a JSON object and varies depending on the event type.
The server receiving the Webhook should return a status code of 200. If a status code other than 200 is returned, it will retry up to 2 times with a 5-second delay. If the last request fails, an error notification will be sent.
If the last Webhook request fails, an error notification email will be sent to the email address associated with the account of the scheduling page creator.
Content-Type: application/json
X-Aitemasu-Token: {{ configured Webhook identification token }}
User-Agent: Aitemasu Webhook
Property Name | Type | Required | Description |
---|---|---|---|
webhookEventName |
string | true |
Webhook event type. Schedule confirmed=event.confirmed Schedule canceled=event.canceled |
payload |
Object | true | Described below |
Property Name | Type | Required | Description |
---|---|---|---|
id |
string | true | Unique ID of the schedule. Note that data before May 2023 will be empty. |
originalUrl |
string | true | URL of the scheduling page where the schedule was created. |
confirmedDateTimeUtc |
string | true | Time when the schedule was created (UTC time, ISO 8601 format). |
eventName |
string | true | Name of the schedule. |
selectedService |
string | true | Selected service name when multiple services are available in the available time display type. |
startDateTime |
string | true | Schedule start time (in timezone specified by timeZone, ISO 8601 format). |
endDateTime |
string | true | Schedule end time (in timezone specified by timeZone, ISO 8601 format). |
timeZone |
string | true | Timezone of the person who confirmed the schedule. |
startDateTimeUtc |
string | true | Schedule start time (UTC time, ISO 8601 format). |
endDateTimeUtc |
string | true | Schedule end time (UTC time, ISO 8601 format). |
location |
Object | true | Location or video conference details. |
owner |
Object | true | Information about the user who created the scheduling page. |
organizer |
Object | true | Schedule organizer/person in charge. |
guestsFromOrganizerSide |
Array | true | Additional attendees from the organizer's side. |
attendee |
Object | true | Person who confirmed the schedule. |
customeFormAnswers |
Array | true | Responses to custom input fields if they exist in the required information. |
cancelPersonName |
string | false | Name of the person who canceled the schedule. Only exists when webhookEventName=event.canceled. |
cancelReason |
string | false | Reason for schedule cancellation. Only exists when webhookEventName=event.canceled. |
canceledDateTimeUtc |
string | false | Time when the schedule was canceled (UTC time, ISO 8601 format). Only exists when webhookEventName=event.canceled. |
{
"webhookEventName": "event.confirmed", // event.confirmed or event.canceled
"payload": {
"id": "15v0lud5id9t3qjxhoi6yst7gh9dvmmf",
"originalUrl": "https://app.aitemasu.me/ev/xxxxxxxxxx",
"confirmedDateTimeUtc": "2024-09-23T05:30:19+00:00",
"eventName": "Free Consultation",
"selectedService": "Free Consultation 30 min",
"startDateTime": "2024-09-24T10:00:00+09:00",
"endDateTime": "2024-09-24T10:30:00+09:00",
"timeZone": "Asia/Tokyo",
"startDateTimeUtc": "2024-09-24T01:00:00+00:00",
"endDateTimeUtc": "2024-09-24T01:30:00+00:00",
"location": {
"type": "googlemeet", // place or googlemeet or zoom
"at": "https://meet.google.com/xxx-xxx-xxx",
"password": "XXXXX" // Password when not embedded in the URL for Zoom
},
"owner": {
"name": "Shinji Yamaguchi",
"email": "[email protected]" // Account email address
},
"organizer": {
"name": "Shinji Yamaguchi",
"jobTitle": "Test Corporation",
"writeCalendar": "[email protected]" // Calendar for writing events
},
"guestsFromOrganizerSide": [
{
"name": "Hanako Yamada"
}
],
"attendee": {
"name": "Taro Yamada",
"jobTitle": "Test Corporation",
"email": "[email protected]",
"tel": "000-0000-0000",
"comment": "This is a sample comment.\nThis is a sample comment.\nThis is a sample comment."
},
"customeFormAnswers": [
{
"question": "Question 1",
"answer": "Answer 1"
},
{
"question": "Question 2",
"answer": "Option 1, Option 3" // Multiple choice answers
},
{
"question": "Question 3",
"answer": "This is a sample long answer.\nThis is a sample long answer.\nThis is a sample long answer."
}
],
"cancelPersonName": "Taro Yamada", // Only exists when webhookEventName=event.canceled
"cancelReason": "Due to an urgent schedule.", // Only exists when webhookEventName=event.canceled
"canceledDateTimeUtc": "2024-09-23T06:46:47+00:00" // Only exists when webhookEventName=event.canceled
}
}
Currently, there is no test environment available. Please create a scheduling page and verify the behavior by actually confirming and canceling schedules.