※開発者向けの情報です。
Webhook機能を使うと、日程調整完了時やキャンセル時に指定したURLに各種情報をPOSTリクエストします。
日程調整URL作成時やテンプレート設定で、「Webhookを使用する」をオンにし、必要情報をご記入ください。
Webhookの通知先URL | 日程調整完了時やキャンセル時に、アイテマスからのPOSTリクエストを受信できるhttpsエンドポイントを指定してください。予め準備する必要があります。 |
Webhookの識別トークン | Webhookの送信元がアイテマスであることを検証するときや、複数の日程調整ページで共通のWebhookの通知先URLを使用したい場合の識別コードとしてご利用ください。任意入力です。 |
アイテマスのWebhookはPOSTメソッドでリクエストします。リクエストボディはJSONオブジェクトに基づいており、イベントタイプによって異なります。
Webhookを受け取ったサーバーはステータスコード200のレスポンスを返却してください。 200以外のステータスコードが返却された場合は、5秒待って2回までリトライします。最後のリクエストが失敗した場合エラーの通知をします。
Webhookの最後のリクエストが失敗した場合、該当の日程調整ページ作成者のアカウントのメールアドレス宛にエラーの通知メールを送ります。
Content-Type: application/json
X-Aitemasu-Token: {{ 設定したWebhookの識別トークン }}
User-Agent: Aitemasu Webhook
Property名 | 型 | 必須 | 説明 |
---|---|---|---|
webhookEventName |
string | true |
Webhookのイベントタイプ。 日程調整確定=event.confirmed 予定キャンセル=event.canceled |
payload |
Object | true | 後述 |
Property名 | 型 | 必須 | 説明 |
---|---|---|---|
id |
string | true | 予定の一意のid。2023年5月以前のデータは空白なので注意。 |
originalUrl |
string | true | 予定が作成された日程調整ページのURL。 |
confirmedDateTimeUtc |
string | true | 予定が作成された時間(UTC時間・ISO 8601形式)。 |
eventName |
string | true | 予定の名前。 |
selectedService |
string | true | 空き時間提示型で、複数の提供サービスがある場合の選択されたサービス名。 |
startDateTime |
string | true | 予定の開始時間(timeZoneで指定されているタイムゾーン・ISO 8601形式)。 |
endDateTime |
string | true | 予定の終了時間(timeZoneで指定されているタイムゾーン・ISO 8601形式)。 |
timeZone |
string | true | 予定の確定者のタイムゾーン。 |
startDateTimeUtc |
string | true | 予定の開始時間(UTC時間・ISO 8601形式)。 |
endDateTimeUtc |
string | true | 予定の終了時間(UTC時間・ISO 8601形式)。 |
location |
Object | true | 場所・ビデオ会議。 |
owner |
Object | true | 日程調整ページを作成したユーザー情報。 |
organizer |
Object | true | 予定の主催者/担当者。 |
guestsFromOrganizerSide |
Array | true | 主催者側の同席者。 |
attendee |
Object | true | 予定の確定者。 |
customeFormAnswers |
Array | true | 相手に求める情報で「カスタム入力」がある場合の回答。 |
cancelPersonName |
string | false | 予定キャンセルを実行した人の名前。webhookEventName=event.canceled のときのみ存在。 |
cancelReason |
string | false | 予定キャンセルの理由。 webhookEventName=event.canceled のときのみ存在。 |
canceledDateTimeUtc |
string | false | 予定キャンセルを実行した時間(UTC時間・ISO 8601形式)。 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": "無料相談",
"selectedService": "無料相談 30分",
"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"
},
"owner": {
"name": "Shinji Yamaguchi",
"email": "[email protected]" // アカウントのメールアドレス
},
"organizer": {
"name": "Shinji Yamaguchi",
"jobTitle": "株式会社テスト",
"writeCalendar": "[email protected]" // 予定を書き込み先カレンダー
},
"guestsFromOrganizerSide": [
{
"name": "Hanako Yamada"
}
],
"attendee": {
"name": "山田太郎",
"jobTitle": "テスト株式会社",
"email": "[email protected]",
"tel": "000-0000-0000",
"comment": "用件・コメントのサンプルです。\n用件・コメントのサンプルです。\n用件・コメントのサンプルです."
},
"customeFormAnswers": [
{
"question": "質問1",
"answer": "回答1"
},
{
"question": "質問2",
"answer": "選択肢1, 選択肢3" // 複数選択肢の回答
},
{
"question": "質問3",
"answer": "長文の回答のサンプルです。\n長文の回答のサンプルです。\n長文の回答のサンプルです."
}
],
"cancelPersonName": "山田太郎", // webhookEventName=event.canceled のときのみ存在。
"cancelReason": "緊急の予定が入ったため。", // webhookEventName=event.canceled のときのみ存在。
"canceledDateTimeUtc": "2024-09-23T06:46:47+00:00" // webhookEventName=event.canceled のときのみ存在。
}
}
現在テスト環境はありません。お手数ですが日程調整ページを作成し、実際に日程調整確定・キャンセルを行いながら挙動をご確認ください。