Gato GraphQL Automatisierungs-Demo

Wie du Benutzer, die eine Lektion von MasterStudy LMS abgeschlossen haben, automatisch auf AirTable registrierst

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

Leonardo Losoviz
Leonardo Losoviz -
Logo
Image
Target Image
Target Image

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

In diesem Video schließt der Benutzer zwei Lektionen eines Kurses aus dem LMS ab. Wenn jede Lektion abgeschlossen wird, 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 und Lesson aus dem LMS.

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

Erstelle eine persisted query mit der folgenden GraphQL-Query und gib ihr den Titel 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
            }
          }
        ]
      }
    }
  })
}

Die persisted query empfängt die Parameter vom Action-Hook stm_lms_lesson_passed von MasterStudy LMS (siehe unten) und ruft alle damit verbundenen Daten ab:

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

Anschließend verbindet sie sich mit der AirTable-API und erstellt die Datensätze mit den bereitgestellten Daten.

Um uns mit der API zu verbinden, benötigen wir persönliche Zugriffstoken zur Authentifizierung. Stelle daher sicher, dass du einen persönlichen Zugriffstoken für deine Tabelle erstellst und ihm den Scope data.records:write zuweist.

Als nächstes erstellen wir eine neue Automatisierung und geben MasterStudys Action stm_lms_lesson_passed als Trigger an.

Dieser Action-Hook stellt die folgenden Daten bereit:

do_action( 'stm_lms_lesson_passed', $user_id, $lesson_id, $course_id );

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

{
  "userId": 1,
  "lessonId": 2,
  "courseId": 3
}
Automatisierungs-Trigger
Automatisierungs-Trigger

Für die Action wählen wir die neu erstellte persisted query Export MasterStudy LMS lesson data to AirTable aus und stellen das JSON-Wörterbuch für die statischen GraphQL-Variablen mit Daten aus AirTable bereit:

{
  "baseId": "{ your baseId }",
  "tableName": "{ your tableName }",
  "personalAccessToken": "{ your access token }"
}
Automatisierungs-Action
Automatisierungs-Action

Veröffentliche abschließend die Automatisierung. Von nun an wird die AirTable-Tabelle automatisch befüllt, sobald der Benutzer eine Lektion abschließt.


Subscribe to our newsletter

Stay in the loop on all updates for Gato GraphQL.