Comment enregistrer automatiquement sur AirTable les utilisateurs ayant terminé une leçon MasterStudy LMS
Chaque fois qu'un utilisateur termine une leçon MasterStudy LMS sur le site WordPress, envoyez des données personnalisées (concernant l'utilisateur, la leçon et le cours) à AirTable et créez des enregistrements dans une table spécifiée.

Intégrations
Chaque fois qu'un utilisateur termine une leçon de MasterStudy LMS, nous enverrons des données personnalisées à AirTable et créerons des enregistrements dans une table spécifiée.
Dans cette vidéo, l'utilisateur termine deux leçons d'un cours du LMS. Lorsque chaque leçon est terminée, une automatisation Gato GraphQL crée un enregistrement dans AirTable avec les données requises :
La table possède les colonnes Name, ProfileURL et Email avec les données de l'utilisateur, et Course et Lesson du LMS.

Créez une requête persistée contenant la requête GraphQL suivante, et donnez-lui le titre 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
}
}
]
}
}
})
}La requête persistée recevra les paramètres du hook d'action stm_lms_lesson_passed de MasterStudy LMS (voir ci-dessous), et récupérera toutes les données associées :
- Le nom, l'e-mail et l'URL de l'utilisateur
- Le titre de la leçon
- Le titre du cours
Elle se connectera ensuite à l'API AirTable, et créera les enregistrements avec les données fournies.
Pour se connecter à l'API, nous avons besoin de tokens d'accès personnel pour l'authentification. Assurez-vous donc de créer un token d'accès personnel pour votre table, et de lui attribuer la portée data.records:write.
Ensuite, nous créons une nouvelle automatisation, en indiquant l'action stm_lms_lesson_passed de MasterStudy comme déclencheur.
Ce hook d'action fournit les données suivantes :
do_action( 'stm_lms_lesson_passed', $user_id, $lesson_id, $course_id );Nous devons également fournir le dictionnaire JSON pour les variables dynamiques, afin de passer les trois paramètres de l'action comme variables à la requête GraphQL :
{
"userId": 1,
"lessonId": 2,
"courseId": 3
}
Pour l'action, nous sélectionnons la requête persistée nouvellement créée Export MasterStudy LMS lesson data to AirTable, et nous fournissons le dictionnaire JSON pour les variables GraphQL statiques, avec les données d'AirTable :
{
"baseId": "{ your baseId }",
"tableName": "{ your tableName }",
"personalAccessToken": "{ your access token }"
}
Enfin, publiez l'automatisation. Désormais, chaque fois que l'utilisateur termine une leçon, la table AirTable sera automatiquement remplie.