Demo otomatisasi Gato GraphQL

Cara mendaftarkan secara otomatis pengguna yang telah menyelesaikan kursus dari MasterStudy LMS di AirTable

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

Leonardo Losoviz
Leonardo Losoviz -
Logo
Image
Target Image
Target Image

Setiap kali pengguna menyelesaikan kursus dari MasterStudy LMS, kami akan mengirimkan data kustom ke AirTable, dan membuat catatan pada tabel yang ditentukan.

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

Tabel memiliki kolom Name, ProfileURL, dan Email dengan data dari pengguna, serta Course 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 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
            }
          }
        ]
      }
    }
  })
}

Perhatikan bagaimana query IsCourseFinished memeriksa apakah kemajuan kursus adalah 100 (yaitu kursus telah selesai), dan hanya kemudian menjalankan sinkronisasi data ke AirTable.

Persisted query akan menerima parameter dari action hook stm_lms_progress_updated milik MasterStudy LMS (lihat di bawah), dan mengambil data berikut:

  • Nama, email, dan URL pengguna
  • Judul kursus

Selanjutnya akan terhubung ke AirTable API, dan membuat catatan dengan data yang diberikan.

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

Selanjutnya, kami membuat otomatisasi baru, dengan menyediakan action stm_lms_progress_updated dari MasterStudy sebagai pemicu.

Action hook ini menyediakan data berikut:

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

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

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

Untuk action, kami memilih persisted query yang baru dibuat Export MasterStudy LMS course data to AirTable, dan menyediakan 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. Mulai sekarang, setiap kali pengguna menyelesaikan kursus, tabel AirTable akan terisi secara otomatis, seperti yang terlihat dalam video di atas:

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

Berlangganan newsletter kami

Tetap update dengan semua pembaruan Gato GraphQL.