Date: 13/03/2024 – 16h00
query
: a string of the graphQL query you want to runvariables
: a JSON dictionnairy of variables you may use in the querylogin
mutationrefreshToken
mutation to refresh your access tokenlogout
mutation{
"Authorization": "Bearer <access_token>"
}
pageInfo
data which gives you some cursors you can use with before
and after
{
companies(first: 2) {
totalCount
pageInfo {
startCursor
endCursor
hasNextPage
}
edges {
node {
id
name
}
}
}
}
endCursor
value for the after
parameter{
companies(first: 2, after: "YXJyYXljb25uZWN0aW9uOjE=") {
totalCount
pageInfo {
startCursor
endCursor
hasNextPage
}
edges {
node {
id
brand
}
}
}
}
You won’t be able to fetch more than the following limits for the follwoing objects:
employee_number
. It’s a string of your internal ID. It will be associated with a record in our DB. You need to use this employee number every time you want to sync our databasescreateCompany
mutationcreateDepartment
mutationcreateOrUpdateEmployee
mutation {
login(username: String!, password: String!) {
ok
accessToken
accessTokenExpirationDate
refreshToken
refreshTokenExpirationDate
}
}
mutation {
logout {
ok
}
}
mutation {
refreshToken
{
ok
accessToken
accessTokenExpirationDate
refreshToken
refreshTokenExpirationDate
}
}
mutation createCompany($companyName: String!, $logoUrl: String!, $externalId: String) {
createCompany(companyName: $companyName, logoUrl: $logoUrl, externalId: $externalId) {
company {
id
name
logoUrl
}
}
}
variables = {
"companyName": "your company name",
"logoUrl": "your logo url",
"externalId": "an ID from your DB (optional)"
}
mutation createOrUpdateCompany($companyName: String!, $logoUrl: String!, $externalId: String) {
createOrUpdateCompany(companyName: $companyName, logoUrl: $logoUrl, externalId: $externalId) {
company {
id
name
logoUrl
}
}
}
variables = {
"companyName": "your company name",
"logoUrl": "your logo url",
"externalId": "an ID from your DB (optional)"
}
companyId
is the id
returned by the createCompany
mutationmutation createDepartment($companyId: ID!, $departmentName: String!, $externalId: String) {
createDepartment(companyId: $companyId, departmentName: $departmentName, externalId: $externalId) {
department {
id
name
}
}
}
variables = {
"companyId": "ID!",
"departmenetName": "your department name inside the company"
"externalId": "an ID from your DB (optional)"
}
departmentId
and the companyId
can be retreive with the companies
queryphoneNumber
and dependents
(= [])InputDependentObject:
$firstName: String!
$lastName: String
$birthdate: Date!
$externalId: String
$email: String
$dateOfOnboarding: Date
$dateOfOffboarding: Date
mutation createOrUpdateEmployee(
$companyId: ID!,
$departmentId: ID!,
$dateOfOnboarding: Date!,
$dateOfOffboarding: Date,
$email: String!,
$employeeNumber: String!,
$firstName: String!,
$lastName: String!,
$phoneNumber: String,
$dependents: [InputDependentObject],
$externalId: String,
birthdate: Date) {
createOrUpdateEmployee(
companyId: $companyId,
departmentId: $departmentId,
email: $email,
phoneNumber: $phoneNumber,
firstName: $firstName,
lastName: $lastName,
employeeNumber: $employeeNumber,
dateOfOnboarding: $dateOfOnboarding,
dateOfOffboarding: $dateOfOffboarding,
dependents: $dependents,
externalId: $externalId,
birthdate: $birthdate) {
employee {
id
birthdate
dependents {
edges {
node {
id
firstName
lastName
birthdate
}
}
}
dependentsInfos {
edges {
node {
id
firstName
lastName
birthdate
}
}
}
}
}
}
variables = {
"companyId": "ID!",
"departmenetId": "ID!",
"dateOfOnboarding": "2022-01-01",
"dateOfOffboarding": "2024-01-01"
"email": "foo@bar.com",
"employeeNumber": "123456ABCDEF",
"firstName": "Foo",
"lastName": "Bar",
"phoneNumber": "+971123456789",
"dependents": [{ "birthdate": "1972-08-03", "firstName": "Foo", "lastName": "Bar"}, { "birthdate": "2000-01-01"}],
"externalId": "an ID from your DB (optional)"
}
phoneNumber
, dateOfOnboarding
and dateOfOffboarding
mutation addOrUpdateDependent(
$birthdate: Date!,
$dependentEmail: String!,
$dependentFirstName: String!,
$dependentLastName: String!,
$parentEmail: String!,
$dependentPhone: String,
$externalId: String,
$dateOfOnboarding: Date,
$dateOfOffboarding: Date
) {
addOrUpdateDependent(
birthdate: $birthdate,
parentEmail: $parentEmail,
dependentEmail: $dependentEmail,
dependentFirstName: $dependentFirstName,
dependentLastName: $dependentLastName,
dependentPhone: $dependentPhone,
externalId: $externalId,
dateOfOnboarding: $dateOfOnboarding,
dateOfOffboarding: $dateOfOffboarding) {
employee {
id
}
}
}
variables = {
"birthdate": "2000-01-01",
"dependentEmail": "dependent@bar.com",
"dependentFirstName": "foo",
"dependentLastName": "bar",
"parentEmail": "parent@bar.com",
"dependentPhone": "+971123456789",
"dateOfOnboarding": "2024-01-01 (optional)",
"dateOfOffboarding": "2030-01-01 (optional)",
"externalId": "an ID from your DB (optional)"
}
mutation setOffboardingDate($employeeId: ID!, $dateOfOffboarding: Date!) {
setOffboardingDate(employeeId: $employeeId, dateOfOffboarding:$dateOfOffboarding) {
employee {
id
dateOfOffboarding
}
}
}
variables = {
"employeeId": "ID!",
"dateOfOffboarding": "2022-01-01"
}
{
companies {
edges {
node {
id
name
logoUrl
departments {
edges {
node {
id
name
employees {
edges {
node {
id
employeeNumber
dateOfOnboarding
dateOfOffboarding
onboardedAt
nbDependents
nbDependentsOnboarded
nbDependentsOffboarded
dependents {
edges{
node{
id
birthdate
email
firstName
lastName
phoneNumber
employeeNumber
dateOfOnboarding
dateOfOffboarding
onboardedAt
nbDependents
}
}
}
}
}
}
}
}
}
}
}
}
}
{
companies {
edges {
node {
id
name
logoUrl
employees {
edges {
node {
id
employeeNumber
dateOfOnboarding
dateOfOffboarding
onboardedAt
nbDependents
nbDependentsOnboarded
nbDependentsOffboarded
dependents {
edges{
node{
id
birthdate
email
firstName
lastName
phoneNumber
employeeNumber
dateOfOnboarding
dateOfOffboarding
onboardedAt
}
}
}
}
}
}
}
}
}
}
{
searchEmployee(externalId: "your ID here") {
id
}
}
{
searchDepartment(externalId: "your ID here") {
id
}
}
{
searchCompany(externalId: "your ID here") {
id
}
}