Demo otomatisasi Gato GraphQL

Cara mendaftarkan secara otomatis pengguna yang telah menyelesaikan pelajaran dari MasterStudy LMS ke AirTable

Setiap kali pengguna menyelesaikan pelajaran dari MasterStudy LMS di situs WordPress, kirim data kustom (mengenai pengguna, pelajaran, dan kursus) ke AirTable dan buat record pada tabel yang ditentukan.

Leonardo Losoviz
Leonardo Losoviz -
Logo
Image
Target Image
Target Image

Setiap kali pengguna menyelesaikan pelajaran dari MasterStudy LMS, kami akan mengirim data kustom ke AirTable dan membuat record pada tabel yang ditentukan.

Dalam video ini, pengguna menyelesaikan dua pelajaran dari sebuah kursus di LMS. Ketika setiap pelajaran selesai, otomatisasi Gato GraphQL akan membuat record di AirTable dengan data yang diperlukan:

Tabel memiliki kolom Name, ProfileURL, dan Email dengan data dari pengguna, serta Course dan Lesson dari LMS.

Tabel di AirTable dengan data LMS
Tabel di AirTable dengan data LMS

Buat persisted query yang berisi GraphQL query berikut, dan beri judul 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
            }
          }
        ]
      }
    }
  })
}

Persisted query akan menerima parameter dari action hook stm_lms_lesson_passed milik MasterStudy LMS (lihat di bawah), dan mengambil semua data yang terkait:

  • Nama, email, dan URL pengguna
  • Judul pelajaran
  • Judul kursus

Kemudian, ia akan terhubung ke AirTable API dan membuat record dengan data yang diberikan.

Untuk terhubung ke API, kita membutuhkan personal access token untuk autentikasi. Pastikan untuk membuat personal access token untuk tabel Anda, dan tetapkan scope data.records:write.

Selanjutnya, kita membuat otomatisasi baru, dengan menyediakan action stm_lms_lesson_passed dari MasterStudy sebagai pemicu.

Action hook ini menyediakan data berikut:

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

Kita juga harus menyediakan kamus JSON untuk variabel dinamis, guna meneruskan ketiga parameter dari action sebagai variabel ke GraphQL query:

{
  "userId": 1,
  "lessonId": 2,
  "courseId": 3
}
Pemicu otomatisasi
Pemicu otomatisasi

Untuk action, kita pilih persisted query yang baru dibuat Export MasterStudy LMS lesson data to AirTable, dan sediakan kamus JSON untuk variabel GraphQL statis, dengan data dari AirTable:

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

Terakhir, publikasikan otomatisasi tersebut. Mulai sekarang, setiap kali pengguna menyelesaikan pelajaran, tabel AirTable akan terisi secara otomatis.


Berlangganan newsletter kami

Tetap update dengan semua pembaruan Gato GraphQL.