Demo de automação com Gato GraphQL

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.

Leonardo Losoviz
Leonardo Losoviz -
Logo
Image
Target Image
Target Image

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.

Tabela no AirTable com dados do LMS
Tabela no AirTable com dados 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
}
Trigger da automação
Trigger da automação

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 }"
}
Action da automação
Action da automação

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.


Assine nossa newsletter

Fique por dentro de todas as atualizações do Gato GraphQL.