Como registrar automaticamente no AirTable os usuários que concluíram uma lição do MasterStudy LMS
Sempre que um usuário conclui uma lição do MasterStudy LMS no site WordPress, envie dados personalizados (sobre o usuário, a lição e o curso) para o AirTable e crie registros em uma tabela especificada.

Integrações
Sempre que um usuário conclui uma lição do MasterStudy LMS, enviaremos dados personalizados para o AirTable e criaremos registros em uma tabela especificada.
Neste vídeo, o usuário conclui duas lições de um curso do LMS. Quando cada lição é concluída, uma automação do Gato GraphQL cria um registro no AirTable com os dados necessários:
A tabela possui as colunas Name, ProfileURL e Email com dados do usuário, e Course e Lesson do LMS.

Crie uma query persistida contendo a seguinte query GraphQL e dê a ela o 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
}
}
]
}
}
})
}A query persistida receberá os parâmetros do action hook stm_lms_lesson_passed do MasterStudy LMS (veja abaixo) e recuperará todos os dados associados a eles:
- O nome, e-mail e URL do usuário
- O título da lição
- O título do curso
Em seguida, ela se conectará à API do AirTable e criará os registros com os dados fornecidos.
Para nos conectarmos à API, precisamos de tokens de acesso pessoal para autenticação. Certifique-se de criar um token de acesso pessoal para a sua tabela e atribuir a ele o escopo data.records:write.
Em seguida, criamos uma nova automação, fornecendo a action stm_lms_lesson_passed do MasterStudy como trigger.
Este action hook fornece os seguintes dados:
do_action( 'stm_lms_lesson_passed', $user_id, $lesson_id, $course_id );Também precisamos fornecer o dicionário JSON para as variáveis dinâmicas, para passar todos os três parâmetros da action como variáveis para a query GraphQL:
{
"userId": 1,
"lessonId": 2,
"courseId": 3
}
Para a action, selecionamos a query persistida recém-criada Export MasterStudy LMS lesson data to AirTable e fornecemos o dicionário JSON para as variáveis GraphQL estáticas, com os dados do AirTable:
{
"baseId": "{ your baseId }",
"tableName": "{ your tableName }",
"personalAccessToken": "{ your access token }"
}
Por fim, publique a automação. A partir de agora, sempre que o usuário concluir uma lição, a tabela no AirTable será preenchida automaticamente.