MasterStudy LMSでレッスンを完了したユーザーをAirTableに自動登録する方法
WordPressサイトでユーザーがMasterStudy LMSのレッスンを完了するたびに、カスタムデータ(ユーザー・レッスン・コースに関する情報)をAirTableに送信し、指定したテーブルにレコードを作成します。

インテグレーション
ユーザーがMasterStudy LMSのレッスンを完了するたびに、カスタムデータをAirTableに送信し、指定したテーブルにレコードを作成します。
このビデオでは、ユーザーがLMSのコースから2つのレッスンを完了しています。各レッスンが完了すると、Gato GraphQLのオートメーションが必要なデータとともにAirTableにレコードを作成します。
テーブルにはユーザーのデータとして Name、ProfileURL、Email の列があり、LMSのデータとして Course と Lesson の列があります。

以下のGraphQLクエリを含むパーシステッドクエリを作成し、タイトルを Export MasterStudy LMS lesson data to AirTable としてください。
query ExportUserData(
$userId: ID!
$lessonId: ID!
$courseId: ID!
) {
user(by: { id: $userId }) {
displayName
@export(as: "userDisplayName")
email
@export(as: "userEmail")
url
@export(as: "userURL")
}
course: customPost(by: {id: $courseId}, customPostTypes:["stm-courses"]) {
title
@export(as: "courseTitle")
}
lesson: customPost(by: {id: $lessonId}, customPostTypes:["stm-lessons"]) {
title
@export(as: "lessonTitle")
}
}
query CreateRecordInAirTable(
$baseId: String!
$tableName: String!
$personalAccessToken: String!
)
@depends(on: "ExportUserData")
{
url: _sprintf(
string: "https://api.airtable.com/v0/%s/%s",
values: [$baseId, $tableName]
)
bearerToken: _sprintf(
string: "Bearer %s",
values: [$personalAccessToken]
)
@remove
response: _sendJSONObjectItemHTTPRequest(input: {
url: $__url,
method: POST,
options: {
headers: [
{
name: "Authorization",
value: $__bearerToken
}
]
json: {
records: [
{
fields: {
Name: $userDisplayName,
ProfileURL: $userURL,
Email: $userEmail,
Course: $courseTitle,
Lesson: $lessonTitle
}
}
]
}
}
})
}パーシステッドクエリはMasterStudy LMSのアクションフック stm_lms_lesson_passed(後述)からパラメーターを受け取り、関連するすべてのデータを取得します。
- ユーザーの名前、メールアドレス、URL
- レッスンのタイトル
- コースのタイトル
その後、AirTable APIに接続し、提供されたデータでレコードを作成します。
APIに接続するには、認証のためにパーソナルアクセストークンが必要です。テーブル用のパーソナルアクセストークンを作成し、スコープ data.records:write を割り当ててください。
次に、新しいオートメーションを作成し、MasterStudyのアクション stm_lms_lesson_passed をトリガーとして設定します。
このアクションフックは以下のデータを提供します。
do_action( 'stm_lms_lesson_passed', $user_id, $lesson_id, $course_id );また、動的変数のJSONディクショナリを提供して、アクションの3つのパラメーターすべてをGraphQLクエリの変数として渡す必要があります。
{
"userId": 1,
"lessonId": 2,
"courseId": 3
}
アクションとして、新しく作成したパーシステッドクエリ Export MasterStudy LMS lesson data to AirTable を選択し、AirTableのデータを含む静的GraphQL変数のJSONディクショナリを提供します。
{
"baseId": "{ your baseId }",
"tableName": "{ your tableName }",
"personalAccessToken": "{ your access token }"
}
最後にオートメーションを公開します。これ以降、ユーザーがレッスンを完了するたびに、AirTableのテーブルが自動的に更新されます。