Jak automatycznie rejestrować w AirTable użytkowników, którzy ukończyli kurs MasterStudy LMS
Gdy użytkownik ukończy kurs MasterStudy LMS w witrynie WordPress, wyślij niestandardowe dane (dotyczące użytkownika i kursu) do AirTable i utwórz rekordy w określonej tabeli.

Integracje
Gdy użytkownik ukończy kurs MasterStudy LMS, wyślemy niestandardowe dane do AirTable i utworzymy rekordy w określonej tabeli.
W tym filmie użytkownik kończy dwie lekcje kursu z LMS. Gdy ostatnia lekcja kursu zostanie ukończona, automatyzacja Gato GraphQL tworzy rekord w AirTable z wymaganymi danymi:
Tabela zawiera kolumny Name, ProfileURL i Email z danymi użytkownika oraz Course z LMS.

Utwórz utrwalone query zawierające poniższe query GraphQL i nadaj mu tytuł 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
}
}
]
}
}
})
}Zwróć uwagę, jak query IsCourseFinished sprawdza, czy postęp kursu wynosi 100 (tzn. kurs został ukończony), i dopiero wtedy wykonuje synchronizację danych z AirTable.
Utrwalone query otrzyma parametry z action hooka stm_lms_progress_updated MasterStudy LMS (patrz poniżej) i pobierze następujące dane:
- Imię, adres e-mail i URL użytkownika
- Tytuł kursu
Następnie połączy się z API AirTable i utworzy rekordy z dostarczonymi danymi.
Aby połączyć się z API, potrzebujemy personal access tokens do uwierzytelniania. Upewnij się, że utworzysz personal access token dla swojej tabeli i przypisz mu zakres data.records:write.
Następnie tworzymy nową automatyzację, podając action stm_lms_progress_updated MasterStudy jako trigger.
Ten action hook dostarcza następujące dane:
do_action( 'stm_lms_progress_updated', $course_id, $user_id, $progress );Musimy również dostarczyć słownik JSON dla zmiennych dynamicznych, aby przekazać wszystkie trzy parametry action jako zmienne do query GraphQL:
{
"courseId": 1,
"userId": 2,
"courseProgress": 3
}
Dla action wybieramy nowo utworzone utrwalone query Export MasterStudy LMS course data to AirTable i dostarczamy słownik JSON dla statycznych zmiennych GraphQL z danymi z AirTable:
{
"baseId": "{ your baseId }",
"tableName": "{ your tableName }",
"personalAccessToken": "{ your access token }"
}
Na koniec opublikuj automatyzację. Od teraz, gdy użytkownik ukończy kurs, tabela AirTable zostanie automatycznie wypełniona, jak pokazuje wynik w powyższym filmie:
