Demo automatyzacji z Gato GraphQL

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.

Leonardo Losoviz
Leonardo Losoviz -
Logo
Image
Target Image
Target Image

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.

Tabela w AirTable z danymi LMS
Tabela w AirTable z danymi 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
}
Trigger automatyzacji
Trigger automatyzacji

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 }"
}
Action automatyzacji
Action automatyzacji

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:

Tabela w AirTable z danymi LMS
Tabela w AirTable z danymi LMS

Zapisz się do naszego newslettera

Bądź na bieżąco ze wszystkimi aktualizacjami Gato GraphQL.