Cómo registrar automáticamente en AirTable a los usuarios que han completado una lección de MasterStudy LMS
Cada vez que un usuario complete una lección de MasterStudy LMS en el sitio WordPress, envía datos personalizados (sobre el usuario, la lección y el curso) a AirTable y crea registros en una tabla concreta.

Integraciones
Cada vez que un usuario complete una lección de MasterStudy LMS, enviaremos datos personalizados a AirTable y crearemos registros en una tabla concreta.
En este vídeo, el usuario completa dos lecciones de un curso del LMS. Cuando se completa cada lección, una automatización de Gato GraphQL crea un registro en AirTable con los datos requeridos:
La tabla tiene las columnas Name, ProfileURL y Email con datos del usuario, y Course y Lesson del LMS.

Crea una consulta persistida que contenga la siguiente consulta GraphQL y dale el título 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 consulta persistida recibirá los parámetros del action hook stm_lms_lesson_passed de MasterStudy LMS (ver más abajo) y recuperará todos los datos asociados:
- El nombre, correo y URL del usuario
- El título de la lección
- El título del curso
A continuación, se conectará a la API de AirTable y creará los registros con los datos proporcionados.
Para conectarnos a la API necesitamos tokens de acceso personal para la autenticación. Asegúrate de crear un token de acceso personal para tu tabla y asignarle el scope data.records:write.
A continuación, creamos una nueva automatización, indicando la acción stm_lms_lesson_passed de MasterStudy como disparador.
Este action hook proporciona los siguientes datos:
do_action( 'stm_lms_lesson_passed', $user_id, $lesson_id, $course_id );También debemos proporcionar el diccionario JSON para las variables dinámicas, para pasar los tres parámetros de la acción como variables a la consulta GraphQL:
{
"userId": 1,
"lessonId": 2,
"courseId": 3
}
Para la acción, seleccionamos la consulta persistida recién creada Export MasterStudy LMS lesson data to AirTable y proporcionamos el diccionario JSON con las variables estáticas de GraphQL, con datos de AirTable:
{
"baseId": "{ your baseId }",
"tableName": "{ your tableName }",
"personalAccessToken": "{ your access token }"
}
Finalmente, publica la automatización. A partir de ahora, cada vez que el usuario complete una lección, la tabla de AirTable se rellenará automáticamente.