Demo tự động hóa với Gato GraphQL

Cách tự động đăng ký trên AirTable những người dùng đã hoàn thành bài học từ MasterStudy LMS

Mỗi khi người dùng hoàn thành một bài học từ MasterStudy LMS trên trang WordPress, gửi dữ liệu tùy chỉnh (liên quan đến người dùng, bài học và khóa học) đến AirTable và tạo bản ghi trong một bảng được chỉ định.

Leonardo Losoviz
Leonardo Losoviz -
Logo
Image
Target Image
Target Image

Mỗi khi người dùng hoàn thành một bài học từ MasterStudy LMS, chúng ta sẽ gửi dữ liệu tùy chỉnh đến AirTable và tạo bản ghi trong một bảng được chỉ định.

Trong video này, người dùng hoàn thành hai bài học từ một khóa học trên LMS. Khi mỗi bài học được hoàn thành, một quy trình tự động hóa Gato GraphQL sẽ tạo một bản ghi trong AirTable với dữ liệu cần thiết:

Bảng có các cột Name, ProfileURLEmail với dữ liệu từ người dùng, và Course cùng Lesson từ LMS.

Bảng trong AirTable với dữ liệu LMS
Bảng trong AirTable với dữ liệu LMS

Tạo một persisted query chứa GraphQL query sau và đặt tiêu đề là 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 sẽ nhận các tham số từ action hook stm_lms_lesson_passed của MasterStudy LMS (xem bên dưới), và lấy toàn bộ dữ liệu liên quan:

  • Tên, email và URL của người dùng
  • Tiêu đề bài học
  • Tiêu đề khóa học

Sau đó, nó sẽ kết nối đến AirTable API và tạo các bản ghi với dữ liệu được cung cấp.

Để kết nối đến API, chúng ta cần personal access tokens để xác thực. Vì vậy, hãy đảm bảo tạo personal access token cho bảng của bạn và gán cho nó phạm vi data.records:write.

Tiếp theo, chúng ta tạo một quy trình tự động hóa mới, cung cấp action stm_lms_lesson_passed của MasterStudy làm trigger.

Action hook này cung cấp dữ liệu như sau:

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

Chúng ta cũng phải cung cấp từ điển JSON cho các biến động, để truyền cả ba tham số từ action làm biến cho GraphQL query:

{
  "userId": 1,
  "lessonId": 2,
  "courseId": 3
}
Trigger của quy trình tự động hóa
Trigger của quy trình tự động hóa

Đối với action, chúng ta chọn persisted query vừa tạo Export MasterStudy LMS lesson data to AirTable và cung cấp từ điển JSON cho các biến GraphQL tĩnh, với dữ liệu từ AirTable:

{
  "baseId": "{ your baseId }",
  "tableName": "{ your tableName }",
  "personalAccessToken": "{ your access token }"
}
Action của quy trình tự động hóa
Action của quy trình tự động hóa

Cuối cùng, hãy xuất bản quy trình tự động hóa. Từ bây giờ, mỗi khi người dùng hoàn thành một bài học, bảng AirTable sẽ được tự động điền dữ liệu.


Đăng ký nhận bản tin của chúng tôi

Cập nhật tất cả những điều mới từ Gato GraphQL.