Gato GraphQL ตัวอย่างการทำงานอัตโนมัติ

วิธีลงทะเบียนผู้ใช้ที่เรียนจบบทเรียนจาก MasterStudy LMS ใน AirTable โดยอัตโนมัติ

เมื่อผู้ใช้เรียนจบบทเรียนจาก MasterStudy LMS บนเว็บไซต์ WordPress ระบบจะส่งข้อมูลที่กำหนดเอง (เกี่ยวกับผู้ใช้ บทเรียน และหลักสูตร) ไปยัง AirTable และสร้างระเบียนในตารางที่ระบุ

Leonardo Losoviz
Leonardo Losoviz -
Logo
Image
Target Image
Target Image

การรวม

ทุกครั้งที่ผู้ใช้เรียนจบบทเรียนจาก MasterStudy LMS ระบบจะส่งข้อมูลที่กำหนดเองไปยัง AirTable และสร้างระเบียนในตารางที่ระบุ

ในวิดีโอนี้ ผู้ใช้เรียนจบสองบทเรียนจากหลักสูตรใน LMS เมื่อแต่ละบทเรียนเสร็จสิ้น ระบบอัตโนมัติของ Gato GraphQL จะสร้างระเบียนใน AirTable พร้อมข้อมูลที่จำเป็น:

ตารางมีคอลัมน์ Name, ProfileURL และ Email สำหรับข้อมูลผู้ใช้ และ Course กับ Lesson สำหรับข้อมูลจาก LMS

ตารางใน AirTable พร้อมข้อมูล LMS
ตารางใน AirTable พร้อมข้อมูล LMS

สร้าง persisted query ที่มี GraphQL query ต่อไปนี้ และตั้งชื่อเป็น 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 จะรับพารามิเตอร์จาก action hook stm_lms_lesson_passed ของ MasterStudy LMS (ดูด้านล่าง) และดึงข้อมูลที่เกี่ยวข้องทั้งหมด:

  • ชื่อ อีเมล และ URL ของผู้ใช้
  • ชื่อบทเรียน
  • ชื่อหลักสูตร

จากนั้นระบบจะเชื่อมต่อกับ AirTable API และสร้างระเบียนด้วยข้อมูลที่ได้รับ

ในการเชื่อมต่อกับ API เราต้องใช้ personal access tokens สำหรับการยืนยันตัวตน ดังนั้นให้สร้าง personal access token สำหรับตารางของคุณ และกำหนดขอบเขต data.records:write

ต่อมา สร้าง automation ใหม่ โดยกำหนด action stm_lms_lesson_passed ของ MasterStudy เป็น trigger

action hook นี้ให้ข้อมูลดังต่อไปนี้:

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

เราต้องระบุ JSON dictionary สำหรับตัวแปรแบบ dynamic ด้วย เพื่อส่งพารามิเตอร์ทั้งสามจาก action เป็นตัวแปรให้กับ GraphQL query:

{
  "userId": 1,
  "lessonId": 2,
  "courseId": 3
}
Trigger ของ Automation
Trigger ของ Automation

สำหรับ action ให้เลือก persisted query ที่สร้างใหม่ Export MasterStudy LMS lesson data to AirTable และระบุ JSON dictionary สำหรับตัวแปร GraphQL แบบ static พร้อมข้อมูลจาก AirTable:

{
  "baseId": "{ your baseId }",
  "tableName": "{ your tableName }",
  "personalAccessToken": "{ your access token }"
}
Action ของ Automation
Action ของ Automation

สุดท้ายให้เผยแพร่ automation นับจากนี้ไป ทุกครั้งที่ผู้ใช้เรียนจบบทเรียน ตารางใน AirTable จะถูกอัปเดตโดยอัตโนมัติ


สมัครรับจดหมายข่าวของเรา

ติดตามการอัปเดตทั้งหมดของ Gato GraphQL