Gato GraphQL otomasyon demosu

MasterStudy LMS'ten kurs tamamlayan kullanıcıları AirTable'a otomatik olarak nasıl kaydedersiniz

Bir kullanıcı WordPress sitesinde MasterStudy LMS'ten bir kursu tamamladığında, özel verileri (kullanıcı ve kursla ilgili) 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'ten bir kursu tamamladığında, AirTable'a özel veriler göndereceğiz ve belirtilen bir tabloda kayıtlar oluşturacağız.

Bu videoda, kullanıcı LMS'teki bir kursun iki dersini tamamlıyor. Kursdaki son ders tamamlandığında, Gato GraphQL otomasyonu AirTable'da gerekli verilerle bir kayıt oluşturuyor:

Tabloda kullanıcıya ait verilerle Name, ProfileURL ve Email sütunları, LMS'ten alınan Course sütunu bulunmaktadır.

AirTable'daki LMS verileriyle dolu tablo
AirTable'daki LMS verileriyle dolu tablo

Aşağıdaki GraphQL queries içeren bir kalıcı query oluşturun ve ona Export MasterStudy LMS course data to AirTable başlığını verin:

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
            }
          }
        ]
      }
    }
  })
}

IsCourseFinished queries'inin kursun ilerlemesinin 100 olup olmadığını (yani kursun tamamlanıp tamamlanmadığını) nasıl kontrol ettiğine ve yalnızca o zaman AirTable'a veri senkronizasyonunu nasıl gerçekleştirdiğine dikkat edin.

Kalıcı query, parametreleri MasterStudy LMS'in stm_lms_progress_updated action hook'undan alacak (aşağıya bakın) ve şu verileri getirecektir:

  • Kullanıcının adı, e-postası ve URL'si
  • 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, MasterStudy'nin stm_lms_progress_updated action'ını tetikleyici olarak belirterek yeni bir otomasyon oluştururuz.

Bu action hook şu verileri sağlar:

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

Ayrıca dinamik değişkenler için JSON sözlüğünü de sağlamalıyız; bu sayede action'dan gelen üç parametrenin tamamını GraphQL queries'e değişken olarak aktarabiliriz:

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

Action için, yeni oluşturulan Export MasterStudy LMS course data to AirTable kalıcı queries'ini seçiyor 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ınlayın. Artık kullanıcı bir kursu her tamamladığında, AirTable tablosu yukarıdaki videodaki sonuçta görüldüğü gibi otomatik olarak doldurulacaktır:

AirTable'daki LMS verileriyle dolu tablo
AirTable'daki LMS verileriyle dolu tablo

Bültenimize abone olun

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