Gato GraphQL otomasyon demosu

MasterStudy LMS'den ders tamamlayan kullanıcıları AirTable'a otomatik olarak nasıl kaydedebilirsiniz

Bir kullanıcı WordPress sitesinde MasterStudy LMS'den bir dersi tamamladığında, kullanıcı, ders ve kursla ilgili özel verileri AirTable'a gönderin ve belirtilen bir tabloda kayıtlar oluşturun.

Leonardo Losoviz
Leonardo Losoviz -
Logo
Image
Target Image
Target Image

Bir kullanıcı MasterStudy LMS'den bir dersi tamamladığında, AirTable'a özel veriler göndereceğiz ve belirtilen bir tabloda kayıtlar oluşturacağız.

Bu videoda kullanıcı, LMS'deki bir kurstan iki ders tamamlamaktadır. Her ders tamamlandığında, bir Gato GraphQL otomasyonu AirTable'da gerekli verilerle bir kayıt oluşturur:

Tabloda kullanıcıya ait verilerle Name, ProfileURL ve Email sütunları, LMS'den ise Course ve Lesson sütunları bulunmaktadır.

LMS verileriyle AirTable tablosu
LMS verileriyle AirTable tablosu

Aşağıdaki GraphQL sorgusunu içeren bir persisted query oluşturun ve ona Export MasterStudy LMS lesson data to AirTable başlığını verin:

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, parametreleri MasterStudy LMS'nin stm_lms_lesson_passed action hook'undan alacak (aşağıya bakın) ve bunlarla ilişkili tüm verileri getirecektir:

  • Kullanıcının adı, e-postası ve URL'si
  • Dersin başlığı
  • Kursun başlığı

Ardından AirTable API'sine bağlanacak ve sağlanan verilerle kayıtları oluşturacaktır.

API'ye bağlanmak için kimlik doğrulaması amacıyla kişisel erişim token'larına ihtiyacımız var. Bu nedenle tablonuz için bir kişisel erişim token'ı oluşturduğunuzdan ve data.records:write kapsamını atadığınızdan emin olun.

Sonraki adımda, tetikleyici olarak MasterStudy'nin stm_lms_lesson_passed action'ını belirterek yeni bir otomasyon oluşturuyoruz.

Bu action hook şu verileri sağlar:

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

Ayrıca dinamik değişkenler için JSON sözlüğünü de sağlamalıyız; böylece action'ın üç parametresinin tümünü GraphQL sorgusuna değişken olarak aktarırız:

{
  "userId": 1,
  "lessonId": 2,
  "courseId": 3
}
Otomasyon tetikleyicisi
Otomasyon tetikleyicisi

Action için, yeni oluşturulan persisted query olan Export MasterStudy LMS lesson data to AirTable'ı seçiyoruz ve AirTable verilerini içeren statik GraphQL değişkenleri için JSON sözlüğünü sağlıyoruz:

{
  "baseId": "{ your baseId }",
  "tableName": "{ your tableName }",
  "personalAccessToken": "{ your access token }"
}
Otomasyon action'ı
Otomasyon action'ı

Son olarak otomasyonu yayımlayın. Artık kullanıcı bir dersi her tamamladığında AirTable tablosu otomatik olarak doldurulacaktır.


Bültenimize abone olun

Gato GraphQL'deki tüm güncellemelerden haberdar olun.