Eduflow
Search
K

Users & Participants

Institution and course owner

Users exist in a variety of levels in Eduflow. Institutions and courses allow direct access to their owner. In GraphQL, these are associated with the User object type.

Institution owner

Query
Response
{
institution {
name
owner {
name
email
}
}
}
{
"data": {
"institution": {
"name": "Dunder Mifflin",
"owner": {
"name": "Michael Scott",
"email": "[email protected]"
}
}
}
}

Course owner

Query
Response
{
course(id: "00000000-5945-95c7-65fd-a9747b200320") {
owner {
name
email
}
}
}
{
"data": {
"course": {
"owner": {
"name": "John Smith",
"email": "[email protected]"
}
}
}
}

Course participants

In courses, users are queried through a pageable connection: Course.participants. Since course users have course-specific context associated them (their participant type and status), their User objects are wrapped in Participant.
Participant types: Owner (creator of course), Admins, Instructors, Assistants and Students.
Query
Response
{
course(id: "00000000-5944-95c7-65fc-a9747b200320") {
participants(first: 5) {
edges {
node {
participantType
participantStatus
user {
name
email
}
}
}
}
}
}
{
"data": {
"course": {
"participants": {
"edges": [
{
"node": {
"participantType": "Owner",
"participantStatus": "ACTIVE",
"user": {
"name": "Michael Scarn",
"email": "michael.scott@dunder-mifflin"
}
}
},
{
"node": {
"participantType": "Teacher",
"participantStatus": "ACTIVE",
"user": {
"name": "John Doe",
"email": "[email protected]"
}
}
},
{
"node": {
"participantType": "Teacher",
"participantStatus": "ACTIVE",
"user": {
"name": "Gyro",
"email": "[email protected]"
}
}
},
{
"node": {
"participantType": "Assistant",
"participantStatus": "ACTIVE",
"user": {
"name": "Dwight Schrute",
"email": "[email protected]"
}
}
},
{
"node": {
"participantType": "Student",
"participantStatus": "ACTIVE",
"user": {
"name": "Jim Halpert",
"email": "[email protected]"
}
}
}
]
}
}
}
}

Searching by username

Query
Result
{
course(id: "00000000-5945-95c7-65fc-a9747b2003210") {
participants(first: 1, searchTerm: "Angela") {
edges {
node {
participantType
participantStatus
user {
name
email
}
}
}
}
}
}
{
"data": {
"course": {
"participants": {
"edges": [
{
"node": {
"participantType": "Student",
"participantStatus": "ACTIVE",
"user": {
"name": "Angela Martin",
"email": "[email protected]"
}
}
}
]
}
}
}
}

Searching by participant type:

Query
Response
{
course(id: "00000000-5945-95c7-65fc-a9747b200120") {
participants(first: 5, participantTypeFilter: Student) {
edges {
node {
participantType
participantStatus
user {
name
email
}
}
}
}
}
}
{
"data": {
"course": {
"participants": {
"edges": [
{
"node": {
"participantType": "Student",
"participantStatus": "ACTIVE",
"user": {
"name": "Pam Beesly",
"email": "[email protected]"
}
}
},
{
"node": {
"participantType": "Student",
"participantStatus": "ACTIVE",
"user": {
"name": "Ryan Howard",
"email": "[email protected]"
}
}
},
{
"node": {
"participantType": "Student",
"participantStatus": "ACTIVE",
"user": {
"name": "Kevin Malone",
"email": "[email protected]"
}
}
},
{
"node": {
"participantType": "Student",
"participantStatus": "ACTIVE",
"user": {
"name": "Andy Bernard",
"email": "[email protected]"
}
}
},
{
"node": {
"participantType": "Student",
"participantStatus": "ACTIVE",
"user": {
"name": "Phyllis Smith",
"email": "[email protected]"
}
}
}
]
}
}
}
}

Individual participant lookup

Query
Response
{
course(id: "00000000-5943-95c7-65fc-a9747b200320") {
participants(id: "7a41ad8e-f252-449d-8add-13c8ae27470b") {
edges {
node {
participantType
participantStatus
user {
name
email
}
}
}
}
}
}
{
"data": {
"course": {
"participants": {
"edges": [
{
"node": {
"participantType": "Student",
"participantStatus": "ACTIVE",
"user": {
"name": "Pam Beesly",
"email": "[email protected]"
}
}
}
]
}
}
}
}
Invitation links and embed (a.k.a magic links) can be accessed through the Participant response object:
Query
Response
{
course(id: "00000000-5943-95c7-65fc-a9747b200320") {
owner {
name
email
}
participants {
edges {
node {
participantStatus
invitationLink
embedLoginLink
}
}
}
}
}
{
"data": {
"course": {
"participants": [
{
"id": "5a7fdd2c-47d4-4a7f-8576-a640938e5574",
"participantType": "Student",
"participantStatus": "INVITATION_PENDING",
"user": {
"name": "Thomas Smith"
},
"invitationLink": "https://app.eduflow.com/join-from-email?userId=5a7fdd2c-47d4-4a7f-8576-a640938e5574&courseId=00000000-5945-95c7-65fc-a9747b200320&token=eyJ1c2VyX2lkIjoiNWE3ZmRkMmMtNDdkNC00YTdmLTg1NzYtYTY0MDkzOGU1NTc0In0.Fr75Hg.6VbxV2GGVNeKWc4C0xTn5CYTtm0",
"embedLoginLink": "https://app.eduflow.com/join-from-email?userId=5a7fdd2c-47d4-4a7f-8576-a640938e5574&courseId=00000000-5945-95c7-65fc-a9747b200320&token=eyJ1c2VyX2lkIjoiNWE3ZmRkMmMtNDdkNC00YTdmLTg1NzYtYTY0MDkzOGU1NTc0In0.Fr75Hg.6VbxV2GGVNeKWc4C0xTn5CYTtm0&skip_signup=1"
}
]
}
}
}
  • invitationLink: Will prompt user to create a password
  • embedLoginLink: "Magic link", takes user directly to to course