Gato GraphQL Automatisierungs-Demo

Wie man Benutzer, die einen MasterStudy LMS-Kurs abgeschlossen haben, automatisch in AirTable registriert

Immer wenn ein Benutzer einen Kurs von MasterStudy LMS auf der WordPress-Website abschließt, werden benutzerdefinierte Daten (zum Benutzer und Kurs) an AirTable gesendet und Datensätze in einer bestimmten Tabelle erstellt.

Leonardo Losoviz
Leonardo Losoviz -
Logo
Image
Target Image
Target Image

Immer wenn ein Benutzer einen Kurs von MasterStudy LMS abschließt, senden wir benutzerdefinierte Daten an AirTable und erstellen Datensätze in einer bestimmten Tabelle.

In diesem Video schließt der Benutzer zwei Lektionen eines LMS-Kurses ab. Wenn die letzte Lektion des Kurses abgeschlossen ist, erstellt eine Gato GraphQL-Automatisierung einen Datensatz in AirTable mit den erforderlichen Daten:

Die Tabelle hat die Spalten Name, ProfileURL und Email mit Benutzerdaten sowie Course vom LMS.

Tabelle in AirTable mit LMS-Daten
Tabelle in AirTable mit LMS-Daten

Erstelle eine persistente Query, die die folgende GraphQL-Query enthält, und gib ihr den Titel Export MasterStudy LMS course data to AirTable:

query IsCourseFinished(
  $courseProgress: Int!  
) {
  isCourseFinished: _equals(value1: $courseProgress, value2: 100)
    @export(as: "isCourseFinished")
}
 
query ExportUserData(
  $courseId: ID!
  $userId: ID!
)
  @depends(on: "IsCourseFinished")
  @include(if: $isCourseFinished)
{
  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")
  }
}
 
query CreateRecordInAirTable(
  $baseId: String!
  $tableName: String!
  $personalAccessToken: String!
)
  @depends(on: "ExportUserData")
  @include(if: $isCourseFinished)
{
  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
            }
          }
        ]
      }
    }
  })
}

Beachte, dass die Query IsCourseFinished prüft, ob der Kursfortschritt 100 beträgt (d. h. der Kurs wurde abgeschlossen), und erst dann die Datensynchronisierung zu AirTable durchführt.

Die persistente Query erhält die Parameter vom Action-Hook stm_lms_progress_updated von MasterStudy LMS (siehe unten) und ruft die folgenden Daten ab:

  • Name, E-Mail und URL des Benutzers
  • Den Titel des Kurses

Anschließend stellt sie eine Verbindung zur AirTable API her und erstellt die Datensätze mit den bereitgestellten Daten.

Um uns mit der API zu verbinden, benötigen wir Personal Access Tokens zur Authentifizierung. Erstelle also einen Personal Access Token für deine Tabelle und weise ihm den Scope data.records:write zu.

Als Nächstes erstellen wir eine neue Automatisierung und geben die Action stm_lms_progress_updated von MasterStudy als Trigger an.

Dieser Action-Hook stellt die folgenden Daten bereit:

do_action( 'stm_lms_progress_updated', $course_id, $user_id, $progress );

Wir müssen außerdem das JSON-Dictionary für die dynamischen Variablen bereitstellen, um alle drei Parameter der Action als Variablen an die GraphQL-Query zu übergeben:

{
  "courseId": 1,
  "userId": 2,
  "courseProgress": 3
}
Trigger der Automatisierung
Trigger der Automatisierung

Für die Action wählen wir die neu erstellte persistente Query Export MasterStudy LMS course data to AirTable aus und stellen das JSON-Dictionary für die statischen GraphQL-Variablen mit Daten aus AirTable bereit:

{
  "baseId": "{ your baseId }",
  "tableName": "{ your tableName }",
  "personalAccessToken": "{ your access token }"
}
Action der Automatisierung
Action der Automatisierung

Veröffentliche abschließend die Automatisierung. Von nun an wird die AirTable-Tabelle jedes Mal automatisch befüllt, wenn der Benutzer einen Kurs abschließt, wie das Ergebnis im Video oben zeigt:

Tabelle in AirTable mit LMS-Daten
Tabelle in AirTable mit LMS-Daten

Subscribe to our newsletter

Stay in the loop on all updates for Gato GraphQL.