Démo d'automatisation avec Gato GraphQL

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.

Leonardo Losoviz
Leonardo Losoviz -
Logo
Image
Target Image
Target Image

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.

Table dans AirTable avec les données du LMS
Table dans AirTable avec les données 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
}
Déclencheur de l'automatisation
Déclencheur de l'automatisation

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 }"
}
Action de l'automatisation
Action de l'automatisation

Enfin, publiez l'automatisation. Désormais, chaque fois que l'utilisateur termine une leçon, la table AirTable sera automatiquement remplie.


Abonnez-vous à notre newsletter

Restez au courant de toutes les nouveautés de Gato GraphQL.