Public GraphQL API Reference
This page documents the Public API for the Famly Platform.
The API is implemented using GraphQL, and is available at https://famlyapi.famly.co/v1/graphql.
We strongly recommend getting familiar with GraphQL using their excellent documentation at https://graphql.org before getting started with the Famly API.
💡 If the following pages are not available for you, reach out to support@famly.co to hear more about what's required to enable this.
Access via API Tokens
Below we'll go into the details of how to access and setup your API tokens.
Accessing Organization API Token
You will find the overview of your API tokens by:
- Navigating to Home → Overview
- Choose your Organization from the Dropdown
- Go into Settings
- Go into Manage API Tokens
From here you can manage your API tokens. See the section Configuring an API Token for more details.
Accessing Site API Token
You will find the overview of your API tokens by:
- Navigate to the the Settings page from in the bottom left of your Navigation sidebar
- Choose your Site from the Dropdown
- Expand the Integrations menu item and click on Manage API Tokens
From here you can manage your API tokens. See the section Configuring an API Token for more details.
Configuring an API Token
In this page you can manage your existing API tokens and add new ones.
To setup a new token:
- Click Add new token
- Give your token a name
- Use the Publisher name to specify what users should see in the App if the any interactions are done via the API
- Configure the expiration date of the API token
- Configure the permissions for the API token
- Click Create new token to finalize the setup
Once you have created your token, you can get the generated API token from the overview as well as update or delete the token.
Terms of Service
API Endpoints
# Production API:
https://famlyapi.famly.co/v1/graphql
Headers
# Your API token from the dashboard. Must be included in all API calls.
X-Famly-Accesstoken: <YOUR_TOKEN_HERE>
Version
1.0.0
Exploring the Public API
GraphiQL
We host GraphiQL, which you can use to experiment with queries. Note that you won't be able to run most queries without authenticating. You can click "Docs" in the upper left corner to see relevant documentation.
On the left side in GraphiQL you will see examples of queries and mutations in the top, and the variables and arguments in the bottom. These are helpful for inspiration and to get quickly started using the API.
Voyager
We also host Voyager, which gives you are move visual overview of how the API is built.
Voyager allows you to explore the whole API graph.
Examples
To get you started quickly, we've included some examples of making query requests and handling pagination. If you are using a different language, check out GraphQL's official overview of frameworks.
TypeScript Example
We'll use the library
graphql-request to make requests to the API. Install it or add it as a dependency to your project via npm add graphql-request graphql
.
import { GraphQLClient, gql } from "graphql-request";
const main = async () => {
// Construct the query we will use to call the API.
const query = gql`
query ListInvoiceBySiteIds($siteIds: [SiteId!]!) {
invoices {
listBySiteIds(siteIds: $siteIds) {
result {
invoiceDate
invoiceId
}
# If this token is not empty, use this as an argument to fetch the next set of invoices.
next
}
}
}
`;
// Pass the variables that we've set up in the query above (everthing with a $ in front of it).
const variables = {
siteIds: ["ac81821f-8a20-46b1-ab97-c9b41c24ef8d"],
};
// Set up a GraphQL client with the API token added to the header.
const client = new GraphQLClient("https://famlyapi.famly.co/v1/graphql", {
headers: {
// This will grab the access token from your environment variables, assuming it is
// accessible from FAMLY_ACCESS_TOKEN.
"X-Famly-Accesstoken": process.env.FAMLY_ACCESS_TOKEN,
},
});
// Get the data from the API and handle pagination if needed.
const results = [];
while (variables.nextToken !== null) {
// Make the request and ddd the invoices from the current request to the results
// array in the outer scope.
const data = await client.request(query, variables);
results.push(...data.invoices.listBySiteIds.result);
// Store the next token in the variables for the next request.
variables.nextToken = data.invoices.listBySiteIds.next;
}
// Output the data to the terminal/console to see what the response was.
console.log(JSON.stringify(results, undefined, 2));
};
main().catch((error) => console.error(error));
Queries
billPayers
Description
For querying bill payer data
Response
Returns a
BillPayerQueries!
Example
Query
query BillPayers {
billPayers {
listBySiteIds {
result {
billPayerId
siteId
name
phone
address {
street
zip
city
state
country
}
email
accountNumber
sortCode
note
children {
childId
share {
multiplier
}
}
invoiceRecipients {
relationId
contactId
billPayerId
name
email
}
externalId
balance
}
next
}
}
}
Response
{
"data": {
"billPayers": {
"listBySiteIds": BillPayerListingResult
}
}
}
checkins
Description
For querying checkins for children and employees
Response
Returns a
CheckinQueries!
Example
Query
query Checkins {
checkins {
children {
list {
result {
id
childId
siteId
groupId
checkinTime
pickupTime
checkoutTime
}
next
}
}
employees {
list {
result {
id
employeeId
siteId
groupId
checkinTime
estimatedCheckoutTime
checkoutTime
}
next
}
}
}
}
Response
{
"data": {
"checkins": {
"children": ChildCheckinQueries,
"employees": EmployeeCheckinQueries
}
}
}
children
Description
For querying children
Response
Returns a
ChildrenQueries!
Example
Query
query Children {
children {
listBySiteIds {
result {
id
name {
firstName
middleName
lastName
fullName
}
gender
birthday
currentGroup {
id
title
description
institutionId
staffRatio
ordering
profileImage {
url
}
}
profileImage {
url
}
records {
key
value
}
sensitiveRecords {
key
value
}
sitesRelation {
firstDay
lastDay
site {
siteId
title
address {
street
zip
city
state
country
}
contactPerson {
firstName
middleName
lastName
fullName
}
email
phone {
value
phoneType
formatted
}
socialMedia {
facebook
instagram
twitter
}
description
openingHours {
monday {
from
to
}
tuesday {
from
to
}
wednesday {
from
to
}
thursday {
from
to
}
friday {
from
to
}
saturday {
from
to
}
sunday {
from
to
}
}
position {
latitude
longitude
}
}
}
contacts {
id
name {
firstName
middleName
lastName
fullName
}
email
address {
street
zip
city
state
country
}
phoneNumbers {
value
phoneType
formatted
}
childIds
profileImage {
url
}
roles {
role {
roleId
title
}
targetId
}
roleInvitations {
roleInvitationId
roleTitle
roleId
verification {
verificationMethod
}
siteTitle
privacyPolicyLink
}
emergencyContact
records {
key
value
}
}
}
next
}
listByChildIds {
result {
id
name {
firstName
middleName
lastName
fullName
}
gender
birthday
currentGroup {
id
title
description
institutionId
staffRatio
ordering
profileImage {
url
}
}
profileImage {
url
}
records {
key
value
}
sensitiveRecords {
key
value
}
sitesRelation {
firstDay
lastDay
site {
siteId
title
address {
street
zip
city
state
country
}
contactPerson {
firstName
middleName
lastName
fullName
}
email
phone {
value
phoneType
formatted
}
socialMedia {
facebook
instagram
twitter
}
description
openingHours {
monday {
from
to
}
tuesday {
from
to
}
wednesday {
from
to
}
thursday {
from
to
}
friday {
from
to
}
saturday {
from
to
}
sunday {
from
to
}
}
position {
latitude
longitude
}
}
}
contacts {
id
name {
firstName
middleName
lastName
fullName
}
email
address {
street
zip
city
state
country
}
phoneNumbers {
value
phoneType
formatted
}
childIds
profileImage {
url
}
roles {
role {
roleId
title
}
targetId
}
roleInvitations {
roleInvitationId
roleTitle
roleId
verification {
verificationMethod
}
siteTitle
privacyPolicyLink
}
emergencyContact
records {
key
value
}
}
}
next
}
list {
result {
id
name {
firstName
middleName
lastName
fullName
}
gender
birthday
currentGroup {
id
title
description
institutionId
staffRatio
ordering
profileImage {
url
}
}
profileImage {
url
}
records {
key
value
}
sensitiveRecords {
key
value
}
sitesRelation {
firstDay
lastDay
site {
siteId
title
address {
street
zip
city
state
country
}
contactPerson {
firstName
middleName
lastName
fullName
}
email
phone {
value
phoneType
formatted
}
socialMedia {
facebook
instagram
twitter
}
description
openingHours {
monday {
from
to
}
tuesday {
from
to
}
wednesday {
from
to
}
thursday {
from
to
}
friday {
from
to
}
saturday {
from
to
}
sunday {
from
to
}
}
position {
latitude
longitude
}
}
}
contacts {
id
name {
firstName
middleName
lastName
fullName
}
email
address {
street
zip
city
state
country
}
phoneNumbers {
value
phoneType
formatted
}
childIds
profileImage {
url
}
roles {
role {
roleId
title
}
targetId
}
roleInvitations {
roleInvitationId
roleTitle
roleId
verification {
verificationMethod
}
siteTitle
privacyPolicyLink
}
emergencyContact
records {
key
value
}
}
}
next
}
}
}
Response
{
"data": {
"children": {
"listBySiteIds": ChildrenListResult,
"listByChildIds": ChildrenListResult,
"list": ChildrenListResult
}
}
}
contacts
Description
For querying contacts
Response
Returns a
ContactQueries!
Example
Query
query Contacts {
contacts {
list {
result {
id
name {
firstName
middleName
lastName
fullName
}
email
address {
street
zip
city
state
country
}
phoneNumbers {
value
phoneType
formatted
}
childIds
profileImage {
url
}
roles {
role {
roleId
title
}
targetId
}
roleInvitations {
roleInvitationId
roleTitle
roleId
verification {
verificationMethod
}
siteTitle
privacyPolicyLink
}
emergencyContact
records {
key
value
}
}
next
}
}
}
Response
{"data": {"contacts": {"list": ContactListResult}}}
employees
Description
For querying employees
Response
Returns an
EmployeeQueries!
Example
Query
query Employees {
employees {
list {
employees {
id
name {
firstName
middleName
lastName
fullName
}
siteId
groupId
group {
id
title
description
institutionId
staffRatio
ordering
profileImage {
url
}
}
profileImage {
url
}
email
title
birthDate
phoneNumber {
value
phoneType
formatted
}
address {
street
zip
city
state
country
}
firstDay
lastDay
roleId
role {
employeeId
person {
name {
firstName
middleName
lastName
fullName
}
profileImage {
url
}
}
institutionSetId
roleId
}
}
}
}
}
Response
{"data": {"employees": {"list": EmployeesResult}}}
groups
Description
For querying groups
Response
Returns a
GroupQueries!
Example
Query
query Groups {
groups {
list {
id
title
description
institutionId
staffRatio
ordering
profileImage {
url
}
}
}
}
Response
{"data": {"groups": {"list": [Group]}}}
inquiries
Description
For querying inquiries for children
Response
Returns a
ChildInquiryQueries!
Example
Query
query Inquiries {
inquiries {
listBySiteIds {
siteId
createdAt
id
status
childId
child {
id
name {
firstName
middleName
lastName
fullName
}
gender
birthday
currentGroup {
id
title
description
institutionId
staffRatio
ordering
profileImage {
url
}
}
profileImage {
url
}
records {
key
value
}
sensitiveRecords {
key
value
}
sitesRelation {
firstDay
lastDay
site {
siteId
title
address {
street
zip
city
state
country
}
contactPerson {
firstName
middleName
lastName
fullName
}
email
phone {
value
phoneType
formatted
}
socialMedia {
facebook
instagram
twitter
}
description
openingHours {
monday {
from
to
}
tuesday {
from
to
}
wednesday {
from
to
}
thursday {
from
to
}
friday {
from
to
}
saturday {
from
to
}
sunday {
from
to
}
}
position {
latitude
longitude
}
}
}
contacts {
id
name {
firstName
middleName
lastName
fullName
}
email
address {
street
zip
city
state
country
}
phoneNumbers {
value
phoneType
formatted
}
childIds
profileImage {
url
}
roles {
role {
roleId
title
}
targetId
}
roleInvitations {
roleInvitationId
roleTitle
roleId
verification {
verificationMethod
}
siteTitle
privacyPolicyLink
}
emergencyContact
records {
key
value
}
}
}
source
bookingSource
reason
lostCategory
lostReason
note
}
}
}
Response
{"data": {"inquiries": {"listBySiteIds": [ChildInquiry]}}}
invoices
Description
For querying invoice data
Response
Returns an
InvoiceQueries!
Example
Query
query Invoices {
invoices {
listBySiteIds {
result {
invoiceId
title
total
invoiceDate
dueDate
billPayerId
lines {
type
childId
info
amount
account {
accountId
title
reference
}
}
pdfResult {
... on InvoicePdfSuccessType {
succeeded
}
... on InvoicePdfFailedType {
errors
}
}
invoiceNumber
}
next
}
}
}
Response
{
"data": {
"invoices": {"listBySiteIds": InvoiceListingResult}
}
}
leaveBalances
Description
For querying leave balances
Response
Returns a
LeaveBalancesQueries!
Example
Query
query LeaveBalances {
leaveBalances {
balanceOverridesByEmployee {
employeeId
leaveType
balance
}
balanceOverrideByEmployeeAndLeaveType {
employeeId
leaveType
balance
}
}
}
Response
{
"data": {
"leaveBalances": {
"balanceOverridesByEmployee": [StaffLeaveBalance],
"balanceOverrideByEmployeeAndLeaveType": StaffLeaveBalance
}
}
}
leaves
Description
For querying leaves for children and employees
Response
Returns a
LeavesQueries!
Example
Query
query Leaves {
leaves {
employees {
listBySiteIds {
result {
leaveId
employeeId
siteId
date
leaveType
leaveSubTypeName
leaveSubTypeCode
reason
startTime
endTime
hours
deletedAt
}
next
}
}
children {
listBySiteIds {
result {
leaveId
childId
siteId
vacationId
date
leaveType
reason
}
next
}
}
}
}
Response
{
"data": {
"leaves": {
"employees": EmployeeLeaveQueries,
"children": ChildLeavesQueries
}
}
}
meals
Description
For querying meals
Response
Returns a
MealQueries!
Example
Query
query Meals {
meals {
planned {
list {
next
result {
siteId
mealPlanId
date
meals {
mealType {
title
order
}
mealItems {
title
}
}
}
}
}
}
}
Response
{"data": {"meals": {"planned": MealPlanQueries}}}
payments
Description
For querying payment data
Response
Returns a
PaymentQueries!
Example
Query
query Payments {
payments {
listBySiteIds {
result {
id
amount
childId
paymentMethod
note
paymentDate
billPayer {
billPayerId
siteId
name
email
accountNumber
sortCode
note
}
currency
viaFamlyPay
isDeposited
depositDate
depositId
invoices {
invoiceId
}
externalSystem {
id
system
name
}
}
next
}
}
}
Response
{
"data": {
"payments": {"listBySiteIds": PaymentListingResult}
}
}
shiftplanner
Response
Returns a
ShiftPlannerPublicQueries!
Example
Query
query Shiftplanner {
shiftplanner {
byGroups {
result {
groups {
groupId
title
openShifts {
date
shifts {
shiftId
date
startTime
endTime
breakMinutes
state
location
assignedTo
}
}
employees {
employee {
id
name {
firstName
middleName
lastName
fullName
}
siteId
groupId
group {
id
title
description
institutionId
staffRatio
ordering
profileImage {
...ProfileImageFragment
}
}
profileImage {
url
}
email
title
birthDate
phoneNumber {
value
phoneType
formatted
}
address {
street
zip
city
state
country
}
firstDay
lastDay
roleId
role {
employeeId
person {
...PersonFragment
}
institutionSetId
roleId
}
}
scheduledMinutes
assignedShifts {
date
scheduledMinutesOnDay
shifts {
shiftId
date
startTime
endTime
breakMinutes
state
location
assignedTo
}
}
}
}
}
next
}
byStaff {
result {
openShifts {
date
shifts {
shiftId
date
startTime
endTime
breakMinutes
state
location
assignedTo
}
}
employees {
employee {
id
name {
firstName
middleName
lastName
fullName
}
siteId
groupId
group {
id
title
description
institutionId
staffRatio
ordering
profileImage {
url
}
}
profileImage {
url
}
email
title
birthDate
phoneNumber {
value
phoneType
formatted
}
address {
street
zip
city
state
country
}
firstDay
lastDay
roleId
role {
employeeId
person {
name {
...NameFragment
}
profileImage {
...ProfileImageFragment
}
}
institutionSetId
roleId
}
}
scheduledMinutes
assignedShifts {
date
scheduledMinutesOnDay
shifts {
shiftId
date
startTime
endTime
breakMinutes
state
location
assignedTo
}
}
}
}
next
}
}
}
Response
{
"data": {
"shiftplanner": {
"byGroups": ShiftPlannerByGroupsPublicResult,
"byStaff": ShiftPlannerByStaffPublicResult
}
}
}
sites
Description
For querying sites
Response
Returns a
SiteQueries!
Example
Query
query Sites {
sites {
list {
next
result {
siteId
title
address {
street
zip
city
state
country
}
contactPerson {
firstName
middleName
lastName
fullName
}
email
phone {
value
phoneType
formatted
}
socialMedia {
facebook
instagram
twitter
}
description
openingHours {
monday {
from
to
}
tuesday {
from
to
}
wednesday {
from
to
}
thursday {
from
to
}
friday {
from
to
}
saturday {
from
to
}
sunday {
from
to
}
}
position {
latitude
longitude
}
}
}
}
}
Response
{"data": {"sites": {"list": SiteResult}}}
Mutations
billPayers
Description
For managing bill payers
Response
Returns a
BillPayerMutations!
Example
Query
mutation BillPayers {
billPayers {
create {
billPayerId
siteId
name
phone
address {
street
zip
city
state
country
}
email
accountNumber
sortCode
note
children {
childId
share {
multiplier
}
}
invoiceRecipients {
relationId
contactId
billPayerId
name
email
}
externalId
balance
}
update {
billPayerId
siteId
name
phone
address {
street
zip
city
state
country
}
email
accountNumber
sortCode
note
}
delete
moveInvoicesAndPayments {
invoices {
invoiceId
}
payments {
paymentId
}
}
addChildren {
billPayerId
childId
share {
multiplier
}
}
deleteChildren {
billPayerId
childId
share {
multiplier
}
}
addInvoiceRecipients {
relationId
contactId
billPayerId
name
email
}
deleteInvoiceRecipients {
billPayerId
relationId
}
}
}
Response
{
"data": {
"billPayers": {
"create": [BillPayer],
"update": [BillPayerUpdate],
"delete": [
"0c83793f-2ce6-458e-8d08-78d3910bdccb"
],
"moveInvoicesAndPayments": MovedInvoicesAndPayments,
"addChildren": [BillPayerChildShareType],
"deleteChildren": [BillPayerChildShareType],
"addInvoiceRecipients": [InvoiceRecipient],
"deleteInvoiceRecipients": [
InvoiceRecipientDeleteResult
]
}
}
}
children
Description
For creating and updating children
Response
Returns a
ChildrenMutation!
Example
Query
mutation Children {
children {
create {
id
name {
firstName
middleName
lastName
fullName
}
gender
birthday
currentGroup {
id
title
description
institutionId
staffRatio
ordering
profileImage {
url
}
}
profileImage {
url
}
records {
key
value
}
sensitiveRecords {
key
value
}
sitesRelation {
firstDay
lastDay
site {
siteId
title
address {
street
zip
city
state
country
}
contactPerson {
firstName
middleName
lastName
fullName
}
email
phone {
value
phoneType
formatted
}
socialMedia {
facebook
instagram
twitter
}
description
openingHours {
monday {
from
to
}
tuesday {
from
to
}
wednesday {
from
to
}
thursday {
from
to
}
friday {
from
to
}
saturday {
from
to
}
sunday {
from
to
}
}
position {
latitude
longitude
}
}
}
contacts {
id
name {
firstName
middleName
lastName
fullName
}
email
address {
street
zip
city
state
country
}
phoneNumbers {
value
phoneType
formatted
}
childIds
profileImage {
url
}
roles {
role {
roleId
title
}
targetId
}
roleInvitations {
roleInvitationId
roleTitle
roleId
verification {
verificationMethod
}
siteTitle
privacyPolicyLink
}
emergencyContact
records {
key
value
}
}
}
update {
id
name {
firstName
middleName
lastName
fullName
}
gender
birthday
currentGroup {
id
title
description
institutionId
staffRatio
ordering
profileImage {
url
}
}
profileImage {
url
}
records {
key
value
}
sensitiveRecords {
key
value
}
sitesRelation {
firstDay
lastDay
site {
siteId
title
address {
street
zip
city
state
country
}
contactPerson {
firstName
middleName
lastName
fullName
}
email
phone {
value
phoneType
formatted
}
socialMedia {
facebook
instagram
twitter
}
description
openingHours {
monday {
from
to
}
tuesday {
from
to
}
wednesday {
from
to
}
thursday {
from
to
}
friday {
from
to
}
saturday {
from
to
}
sunday {
from
to
}
}
position {
latitude
longitude
}
}
}
contacts {
id
name {
firstName
middleName
lastName
fullName
}
email
address {
street
zip
city
state
country
}
phoneNumbers {
value
phoneType
formatted
}
childIds
profileImage {
url
}
roles {
role {
roleId
title
}
targetId
}
roleInvitations {
roleInvitationId
roleTitle
roleId
verification {
verificationMethod
}
siteTitle
privacyPolicyLink
}
emergencyContact
records {
key
value
}
}
}
delete
moveGroup {
childId
groupId
date
group {
id
title
description
institutionId
staffRatio
ordering
profileImage {
url
}
}
time
}
cancelGroupMove {
childId
groupId
date
group {
id
title
description
institutionId
staffRatio
ordering
profileImage {
url
}
}
time
}
}
}
Response
{
"data": {
"children": {
"create": [Child],
"update": [Child],
"delete": [
"0c83793f-2ce6-458e-8d08-78d3910bdccb"
],
"moveGroup": [GroupMove],
"cancelGroupMove": [GroupMove]
}
}
}
contacts
Description
For creating and updating contacts
Response
Returns a
ContactsMutation!
Example
Query
mutation Contacts {
contacts {
create {
id
name {
firstName
middleName
lastName
fullName
}
email
address {
street
zip
city
state
country
}
phoneNumbers {
value
phoneType
formatted
}
childIds
profileImage {
url
}
roles {
role {
roleId
title
}
targetId
}
roleInvitations {
roleInvitationId
roleTitle
roleId
verification {
verificationMethod
}
siteTitle
privacyPolicyLink
}
emergencyContact
records {
key
value
}
}
update {
id
name {
firstName
middleName
lastName
fullName
}
email
address {
street
zip
city
state
country
}
phoneNumbers {
value
phoneType
formatted
}
childIds
profileImage {
url
}
roles {
role {
roleId
title
}
targetId
}
roleInvitations {
roleInvitationId
roleTitle
roleId
verification {
verificationMethod
}
siteTitle
privacyPolicyLink
}
emergencyContact
records {
key
value
}
}
}
}
Response
{
"data": {
"contacts": {
"create": [Contact],
"update": [Contact]
}
}
}
employees
Description
For managing employees
Response
Returns an
EmployeeMutations!
Example
Query
mutation Employees {
employees {
create {
id
name {
firstName
middleName
lastName
fullName
}
siteId
groupId
group {
id
title
description
institutionId
staffRatio
ordering
profileImage {
url
}
}
profileImage {
url
}
email
title
birthDate
phoneNumber {
value
phoneType
formatted
}
address {
street
zip
city
state
country
}
firstDay
lastDay
roleId
role {
employeeId
person {
name {
firstName
middleName
lastName
fullName
}
profileImage {
url
}
}
institutionSetId
roleId
}
}
update {
id
name {
firstName
middleName
lastName
fullName
}
siteId
groupId
group {
id
title
description
institutionId
staffRatio
ordering
profileImage {
url
}
}
profileImage {
url
}
email
title
birthDate
phoneNumber {
value
phoneType
formatted
}
address {
street
zip
city
state
country
}
firstDay
lastDay
roleId
role {
employeeId
person {
name {
firstName
middleName
lastName
fullName
}
profileImage {
url
}
}
institutionSetId
roleId
}
}
delete
}
}
Response
{
"data": {
"employees": {
"create": [Employee],
"update": [Employee],
"delete": [
"0c83793f-2ce6-458e-8d08-78d3910bdccb"
]
}
}
}
files
Description
For managing files
Response
Returns a
FileMutations!
Example
Query
mutation Files {
files {
getSignedUrl {
signedUploadUrl
hmac
}
getSignedUrls {
filename
upload {
signedUploadUrl
hmac
}
}
}
}
Response
{
"data": {
"files": {
"getSignedUrl": FileUpload,
"getSignedUrls": [BatchFileUpload]
}
}
}
groups
Description
For managing groups (rooms)
Response
Returns a
GroupMutations!
Example
Query
mutation Groups {
groups {
create {
id
title
description
institutionId
staffRatio
ordering
profileImage {
url
}
}
update {
id
title
description
institutionId
staffRatio
ordering
profileImage {
url
}
}
}
}
Response
{
"data": {
"groups": {
"create": [Group],
"update": [Group]
}
}
}
inquiries
Description
For creating inquiries for children
Response
Returns a
ChildInquiryMutation!
Example
Query
mutation Inquiries {
inquiries {
create {
siteId
createdAt
id
status
childId
child {
id
name {
firstName
middleName
lastName
fullName
}
gender
birthday
currentGroup {
id
title
description
institutionId
staffRatio
ordering
profileImage {
url
}
}
profileImage {
url
}
records {
key
value
}
sensitiveRecords {
key
value
}
sitesRelation {
firstDay
lastDay
site {
siteId
title
address {
street
zip
city
state
country
}
contactPerson {
firstName
middleName
lastName
fullName
}
email
phone {
value
phoneType
formatted
}
socialMedia {
facebook
instagram
twitter
}
description
openingHours {
monday {
from
to
}
tuesday {
from
to
}
wednesday {
from
to
}
thursday {
from
to
}
friday {
from
to
}
saturday {
from
to
}
sunday {
from
to
}
}
position {
latitude
longitude
}
}
}
contacts {
id
name {
firstName
middleName
lastName
fullName
}
email
address {
street
zip
city
state
country
}
phoneNumbers {
value
phoneType
formatted
}
childIds
profileImage {
url
}
roles {
role {
roleId
title
}
targetId
}
roleInvitations {
roleInvitationId
roleTitle
roleId
verification {
verificationMethod
}
siteTitle
privacyPolicyLink
}
emergencyContact
records {
key
value
}
}
}
source
bookingSource
reason
lostCategory
lostReason
note
}
}
}
Response
{"data": {"inquiries": {"create": [ChildInquiry]}}}
invoices
Description
For managing invoices
Response
Returns an
InvoiceMutations!
Example
Query
mutation Invoices {
invoices {
create {
invoiceId
title
total
invoiceDate
dueDate
billPayerId
lines {
type
childId
info
amount
account {
accountId
title
reference
}
}
pdfResult {
... on InvoicePdfSuccessType {
succeeded
}
... on InvoicePdfFailedType {
errors
}
}
invoiceNumber
}
setPdf {
success
}
reportError {
invoiceId
success
}
createCreditNote {
invoiceId
invoiceNumber
}
}
}
Response
{
"data": {
"invoices": {
"create": [Invoice],
"setPdf": SetPdfResult,
"reportError": ErrorReportResponse,
"createCreditNote": CreateCreditNoteOutput
}
}
}
leaveBalances
Description
For modifying leave balances
Response
Returns a
LeaveBalancesMutations!
Example
Query
mutation LeaveBalances {
leaveBalances {
setEmployeeBalanceOverride
}
}
Response
{"data": {"leaveBalances": {"setEmployeeBalanceOverride": 123.45}}}
leaves
Description
For mutating leaves for children and employees
Response
Returns a
LeavesMutations!
Example
Query
mutation Leaves {
leaves {
employees {
delete
}
}
}
Response
{
"data": {
"leaves": {"employees": EmployeeLeaveMutations}
}
}
payments
Description
For managing payments
Response
Returns a
PaymentMutations!
Example
Query
mutation Payments {
payments {
create {
id
amount
childId
paymentMethod
note
paymentDate
billPayer {
billPayerId
siteId
name
email
accountNumber
sortCode
note
}
currency
viaFamlyPay
isDeposited
depositDate
depositId
invoices {
invoiceId
}
externalSystem {
id
system
name
}
}
update {
id
amount
childId
paymentMethod
note
paymentDate
billPayer {
billPayerId
siteId
name
email
accountNumber
sortCode
note
}
currency
viaFamlyPay
isDeposited
depositDate
depositId
invoices {
invoiceId
}
externalSystem {
id
system
name
}
}
delete {
id
}
}
}
Response
{
"data": {
"payments": {
"create": [Payment],
"update": [Payment],
"delete": [PaymentDeleteResult]
}
}
}
shiftplanner
Response
Returns a
ShiftPlannerPublicMutations!
Example
Query
mutation Shiftplanner {
shiftplanner {
publish {
publishedShifts {
shiftId
date
startTime
endTime
breakMinutes
state
location {
groupId
title
}
assignedTo
}
}
shift {
create {
shift {
shiftId
date
startTime
endTime
breakMinutes
state
assignedTo
location
}
}
update {
shift {
shiftId
date
startTime
endTime
breakMinutes
state
assignedTo
location
}
}
delete {
shift {
shiftId
date
startTime
endTime
breakMinutes
state
assignedTo
location
}
}
}
}
}
Response
{
"data": {
"shiftplanner": {
"publish": ShiftPlannerPublishResultPublicType,
"shift": ShiftPublicMutations
}
}
}
Types
AccountId
Description
A string containing a 36-character UUID
Example
"0c83793f-2ce6-458e-8d08-78d3910bdccb"
AccountType
Fields
Field Name | Description |
---|---|
accountId -
AccountId!
|
|
title -
String!
|
|
reference -
String!
|
Example
{
"accountId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"title": "xyz789",
"reference": "abc123"
}
Address
AddressInput
AssignedShiftsPublicType
Fields
Field Name | Description |
---|---|
date -
LocalDate!
|
|
scheduledMinutesOnDay -
Float!
|
|
shifts -
[ShiftPublicType!]!
|
Example
{
"date": "2020-07-19",
"scheduledMinutesOnDay": 123.45,
"shifts": [ShiftPublicType]
}
BadMoney
Description
A string containing an amount of money given as a decimal number
Example
BadMoney
BasicChildRecordKey
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
Example
"MIGRATION_BACKGROUND"
BatchFileUpload
Description
Data required to make an out-of-band file upload of multiple files
Fields
Field Name | Description |
---|---|
filename -
String!
|
Name of the file to be uploaded |
upload -
FileUpload!
|
Object holding data required for file upload |
Example
{
"filename": "abc123",
"upload": FileUpload
}
BillPayer
Description
Output for creating a bill payer
Fields
Field Name | Description |
---|---|
billPayerId -
BillPayerId
|
Unique identifier for a bill payer in Famly |
siteId -
SiteId!
|
Uniquely identifies the site for which the bill payer receives invoices |
name -
String!
|
|
phone -
String
|
|
address -
Address
|
|
email -
String
|
|
accountNumber -
String
|
The bill payers bank account number |
sortCode -
String
|
The bill payer's bank sort code |
note -
String
|
Free-text notes kept regarding the bill payer |
children -
[BillPayerChild!]!
|
|
invoiceRecipients -
[InvoiceRecipient!]!
|
|
externalId -
String
|
|
balance -
BadMoney!
|
Example
{
"billPayerId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"siteId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"name": "abc123",
"phone": "xyz789",
"address": Address,
"email": "example@famly.co",
"accountNumber": "abc123",
"sortCode": "abc123",
"note": "xyz789",
"children": [BillPayerChild],
"invoiceRecipients": [InvoiceRecipient],
"externalId": "xyz789",
"balance": BadMoney
}
BillPayerChild
Description
A child associated with a bill payer
Fields
Field Name | Description |
---|---|
childId -
ChildId!
|
Uniquely identifies a child within Famly |
share -
ChildShare
|
Example
{
"childId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"share": ChildShare
}
BillPayerChildInput
Description
Input for creating a bill payer child
Fields
Input Field | Description |
---|---|
childId -
ChildId!
|
Uniquely identifies a child within Famly |
share -
ChildShareInput
|
Example
{
"childId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"share": ChildShareInput
}
BillPayerCursor
Description
A string representing a cursor into a paged result
Example
"0c83793f-2ce6-458e-8d08-78d3910bdccb"
BillPayerId
Description
A string containing a 36-character UUID
Example
"0c83793f-2ce6-458e-8d08-78d3910bdccb"
BillPayerInput
Description
Input for creating a bill payer
Fields
Input Field | Description |
---|---|
siteId -
SiteId!
|
Uniquely identifies the site for which the bill payer receives invoices |
name -
NameInput!
|
|
phone -
PhoneNumber
|
|
address -
AddressInput
|
|
email -
EmailAddress
|
|
accountNumber -
String
|
The bill payers bank account number |
sortCode -
String
|
The bill payer's bank sort code |
note -
String
|
Free-text notes kept regarding the bill payer |
children -
[BillPayerChildInput!]
|
|
invoiceRecipients -
[InvoiceRecipientInput!]
|
|
externalId -
String
|
Identifier for keeping the bill payer in sync with an external system |
Example
{
"siteId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"name": NameInput,
"phone": "+17895551234",
"address": AddressInput,
"email": "example@famly.co",
"accountNumber": "xyz789",
"sortCode": "abc123",
"note": "abc123",
"children": [BillPayerChildInput],
"invoiceRecipients": [InvoiceRecipientInput],
"externalId": "xyz789"
}
BillPayerListingResult
Fields
Field Name | Description |
---|---|
result -
[BillPayer!]!
|
|
next -
BillPayerCursor
|
Example
{
"result": [BillPayer],
"next": "0c83793f-2ce6-458e-8d08-78d3910bdccb"
}
BillPayerMutations
Description
For managing bill payers
Fields
Field Name | Description |
---|---|
create -
[BillPayer!]!
|
Create bill payers |
Arguments
|
|
update -
[BillPayerUpdate!]!
|
Update bill payers |
Arguments
|
|
delete -
[BillPayerId!]!
|
Deletes the given bill payers You can not delete a bill payer that has active shares for a child. You must first use the deleteChildren method to delete bill payer shares for all associated children. |
Arguments
|
|
moveInvoicesAndPayments -
MovedInvoicesAndPayments!
|
Moves invoices and payments from one bill payer to another You cannot move invoices and payments if any of the following is true for fromBillPayerId:
Both bill payers must be in the same institution. You may not move invoices and payments between deleted bill payers. Deleted invoices and payments do not get moved over. |
Arguments
|
|
addChildren -
[BillPayerChildShareType!]!
|
Add per-child invoice shares for bill payers Shares are represented as a list of objects containing a child ID, a bill payer ID, and, optionally, a share amount. Share amounts are assigned to ensure the total share for each child (including existing and newly added records) adds up to within 0.0001 of 1.0. Requested share amounts are assigned first; the remaining portion of the share for each child will be divided evenly among any existing bill payers for the child and any bill payers assigned to the child in a request for which a share was not provided. You can not add an archived bill payer to the list of shares for a child. |
Arguments
|
|
deleteChildren -
[BillPayerChildShareType!]!
|
Remove per-child invoice shares for bill payers Shares to delete are represented as a list of objects containing a child ID and a bill payer ID. When a bill payer share is deleted, the bill payer share for a child will be divided among the remaining bill payers. It is legal to delete all bill payer shares for a child, but it will no longer be possible to generate invoices for the child. |
Arguments
|
|
addInvoiceRecipients -
[InvoiceRecipient!]!
|
Add the given invoice recipients for the specified bill payers. An invoice recipient is a link between a relation/contact and a bill payer. |
Arguments
|
|
deleteInvoiceRecipients -
[InvoiceRecipientDeleteResult!]!
|
Delete the given invoice recipients for the specified bill payers. |
Arguments
|
Example
{
"create": [BillPayer],
"update": [BillPayerUpdate],
"delete": [
"0c83793f-2ce6-458e-8d08-78d3910bdccb"
],
"moveInvoicesAndPayments": MovedInvoicesAndPayments,
"addChildren": [BillPayerChildShareType],
"deleteChildren": [BillPayerChildShareType],
"addInvoiceRecipients": [InvoiceRecipient],
"deleteInvoiceRecipients": [
InvoiceRecipientDeleteResult
]
}
BillPayerQueries
Description
For querying bill payer data
Fields
Field Name | Description |
---|---|
listBySiteIds -
BillPayerListingResult!
|
A paginated list of bill payers |
Arguments
|
Example
{"listBySiteIds": BillPayerListingResult}
BillPayerReferenceInput
Description
Details for referencing a bill payer in Famly
Fields
Input Field | Description |
---|---|
billPayerId -
BillPayerId
|
|
externalId -
String
|
|
siteId -
SiteId
|
|
tags -
[ReferenceTag!]!
|
Example
{
"billPayerId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"externalId": "xyz789",
"siteId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"tags": [ReferenceTag]
}
BillPayerSummary
Description
An entity who has paid, or will be paying, an invoice
Example
{
"billPayerId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"siteId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"name": "abc123",
"email": "example@famly.co",
"accountNumber": "abc123",
"sortCode": "abc123",
"note": "abc123"
}
BillPayerUpdate
Description
Output for updating a bill payer
Fields
Field Name | Description |
---|---|
billPayerId -
BillPayerId
|
Unique identifier for a bill payer in Famly |
siteId -
SiteId!
|
Uniquely identifies the site for which the bill payer receives invoices |
name -
String!
|
|
phone -
String
|
|
address -
Address
|
|
email -
String
|
|
accountNumber -
String
|
The bill payers bank account number |
sortCode -
String
|
The bill payer's bank sort code |
note -
String
|
Free-text notes kept regarding the bill payer |
Example
{
"billPayerId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"siteId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"name": "xyz789",
"phone": "abc123",
"address": Address,
"email": "example@famly.co",
"accountNumber": "xyz789",
"sortCode": "xyz789",
"note": "abc123"
}
BillPayerUpdateInput
Description
Input for updating a bill payer
Fields
Input Field | Description |
---|---|
billPayerId -
BillPayerId!
|
Unique identifier for a bill payer in Famly |
siteId -
SiteId!
|
Uniquely identifies the site for which the bill payer receives invoices |
name -
NameInput!
|
|
phone -
PhoneNumber
|
|
address -
AddressInput
|
|
email -
EmailAddress
|
|
accountNumber -
String
|
The bill payers bank account number |
sortCode -
String
|
The bill payer's bank sort code |
note -
String
|
Free-text notes kept regarding the bill payer |
externalId -
String
|
Identifier for keeping the bill payer in sync with an external system |
Example
{
"billPayerId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"siteId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"name": NameInput,
"phone": "+17895551234",
"address": AddressInput,
"email": "example@famly.co",
"accountNumber": "xyz789",
"sortCode": "xyz789",
"note": "abc123",
"externalId": "xyz789"
}
Boolean
Description
The Boolean
scalar type represents true
or false
.
Example
true
CheckinCursor
Description
A string representing a cursor into a paged result
Example
"0c83793f-2ce6-458e-8d08-78d3910bdccb"
CheckinQueries
Description
For querying checkins for children and employees
Fields
Field Name | Description |
---|---|
children -
ChildCheckinQueries!
|
For querying checkins for children |
employees -
EmployeeCheckinQueries!
|
For querying checkins for employees |
Example
{
"children": ChildCheckinQueries,
"employees": EmployeeCheckinQueries
}
Child
Description
Represents a child
Fields
Field Name | Description |
---|---|
id -
ChildId!
|
Child Id |
name -
Name!
|
Child name |
gender -
Gender
|
Child gender |
birthday -
LocalDate
|
The child's birthday |
currentGroup -
Group
|
|
profileImage -
ProfileImage
|
|
records -
[Record!]!
|
Basic child info records. Currently available are:
|
Arguments
|
|
sensitiveRecords -
[Record!]!
|
Sensitive child info records. Currently available are:
|
Arguments
|
|
sitesRelation -
[SiteRelation!]!
|
|
contacts -
[Contact!]!
|
Example
{
"id": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"name": Name,
"gender": "FEMALE",
"birthday": "2020-07-19",
"currentGroup": Group,
"profileImage": ProfileImage,
"records": [Record],
"sensitiveRecords": [Record],
"sitesRelation": [SiteRelation],
"contacts": [Contact]
}
ChildCheckin
Description
Represents a child checkin
Fields
Field Name | Description |
---|---|
result -
[ChildCheckinResult!]!
|
A paginated list of Child checkins |
next -
CheckinCursor
|
If this token is not empty, use this as an argument to fetch the next set of children. |
Example
{
"result": [ChildCheckinResult],
"next": "0c83793f-2ce6-458e-8d08-78d3910bdccb"
}
ChildCheckinId
Description
A string containing a 36-character UUID
Example
"0c83793f-2ce6-458e-8d08-78d3910bdccb"
ChildCheckinQueries
Description
For querying checkins for children
Fields
Field Name | Description |
---|---|
list -
ChildCheckin!
|
Get all checkins |
Arguments
|
Example
{"list": ChildCheckin}
ChildCheckinResult
Description
Represents a paginated result of children checkin
Fields
Field Name | Description |
---|---|
id -
ChildCheckinId!
|
Checkin Id |
childId -
ChildId!
|
Child id |
siteId -
SiteId!
|
Site id |
groupId -
GroupId!
|
Group id |
checkinTime -
ZonedDateTime!
|
The time the child checked in |
pickupTime -
ZonedDateTime
|
The (optional) expected pickup time of the child. |
checkoutTime -
ZonedDateTime
|
The optional time the child was checked out |
Example
{
"id": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"childId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"siteId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"groupId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"checkinTime": ZonedDateTime,
"pickupTime": ZonedDateTime,
"checkoutTime": ZonedDateTime
}
ChildContactRoleInvitation
Fields
Field Name | Description |
---|---|
relationId -
RelationId!
|
|
contactFirstName -
String!
|
|
childFirstName -
String!
|
Use field childName instead. |
childName -
Name!
|
|
childProfileImage -
ProfileImage
|
|
roleInvitationId -
RoleInvitationId!
|
|
roleTitle -
String!
|
|
roleId -
RoleId!
|
|
verification -
RoleInvitationVerification!
|
|
siteTitle -
String!
|
|
privacyPolicyLink -
String
|
Example
{
"relationId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"contactFirstName": "abc123",
"childFirstName": "xyz789",
"childName": Name,
"childProfileImage": ProfileImage,
"roleInvitationId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"roleTitle": "abc123",
"roleId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"verification": RoleInvitationVerification,
"siteTitle": "abc123",
"privacyPolicyLink": "abc123"
}
ChildCursor
Description
A string representing a cursor into a paged result
Example
"0c83793f-2ce6-458e-8d08-78d3910bdccb"
ChildDateOfBirthVerification
Fields
Field Name | Description |
---|---|
childFirstName -
String!
|
|
verificationMethod -
RoleInvitationVerificationMethod!
|
Example
{
"childFirstName": "xyz789",
"verificationMethod": "DATE_OF_BIRTH"
}
ChildId
Description
A string containing a 36-character UUID
Example
"0c83793f-2ce6-458e-8d08-78d3910bdccb"
ChildInput
Description
Input for creating a child
Fields
Input Field | Description |
---|---|
name -
NameInput!
|
|
gender -
Gender
|
|
birthday -
LocalDate
|
|
currentGroupId -
GroupId!
|
|
records -
[RecordInput!]!
|
|
sensitiveRecords -
[RecordInput!]!
|
|
sitesRelation -
[SiteRelationInput!]!
|
|
isTestChild -
Boolean
|
Example
{
"name": NameInput,
"gender": "FEMALE",
"birthday": "2020-07-19",
"currentGroupId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"records": [RecordInput],
"sensitiveRecords": [RecordInput],
"sitesRelation": [SiteRelationInput],
"isTestChild": false
}
ChildInquiry
Description
Represents a child inquiry
Fields
Field Name | Description |
---|---|
siteId -
InstitutionId!
|
Site ID |
createdAt -
ZonedDateTime!
|
The date of the inquiry |
id -
InquiryId!
|
Inquiry Id |
status -
Status!
|
Status of inquiry |
childId -
ChildId!
|
Child ID |
child -
Child
|
Child |
source -
String!
|
Source |
bookingSource -
String!
|
BookingSource |
reason -
String!
|
Reason |
lostCategory -
String!
|
LostCategory |
lostReason -
String!
|
LostReason |
note -
String!
|
Note |
Example
{
"siteId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"createdAt": ZonedDateTime,
"id": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"status": "VIEWED",
"childId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"child": Child,
"source": "xyz789",
"bookingSource": "xyz789",
"reason": "abc123",
"lostCategory": "abc123",
"lostReason": "abc123",
"note": "abc123"
}
ChildInquiryContact
Description
Input for creating a new contact on an inquiry
Fields
Input Field | Description |
---|---|
name -
NameInput!
|
|
email -
ValidEmailAddress!
|
|
address -
AddressInput
|
|
mobilePhone -
PhoneNumber
|
|
homePhone -
PhoneNumber
|
|
workPhone -
PhoneNumber
|
Example
{
"name": NameInput,
"email": "example@famly.co",
"address": AddressInput,
"mobilePhone": "+17895551234",
"homePhone": "+17895551234",
"workPhone": "+17895551234"
}
ChildInquiryMutation
Description
For creating inquiries for children
Fields
Field Name | Description |
---|---|
create -
[ChildInquiry!]!
|
After creating inquiries, returns a list of them |
Arguments
|
Example
{"create": [ChildInquiry]}
ChildInquiryQueries
Description
For querying inquiries for children
Fields
Field Name | Description |
---|---|
listBySiteIds -
[ChildInquiry!]!
|
Get all inquiries for given sites |
Arguments
|
Example
{"listBySiteIds": [ChildInquiry]}
ChildLeave
Description
Represents a child leave
Fields
Field Name | Description |
---|---|
leaveId -
ChildLeaveId!
|
Child leave ID |
childId -
ChildId!
|
Child ID |
siteId -
SiteId!
|
Institution Id |
vacationId -
VacationId
|
Vacation Id |
date -
LocalDate!
|
Leave date |
leaveType -
String!
|
Leave type |
reason -
String
|
Reason |
Example
{
"leaveId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"childId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"siteId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"vacationId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"date": "2020-07-19",
"leaveType": "abc123",
"reason": "xyz789"
}
ChildLeaveCursor
Description
A string representing a cursor into a paged result
Example
"0c83793f-2ce6-458e-8d08-78d3910bdccb"
ChildLeaveId
Description
A string containing a 36-character UUID
Example
"0c83793f-2ce6-458e-8d08-78d3910bdccb"
ChildLeavesQueries
Description
For querying child leaves
Fields
Field Name | Description |
---|---|
listBySiteIds -
ChildLeavesResult!
|
A paginated list of children's leaves associated with the given a list of organization, area or site IDs |
Arguments
|
Example
{"listBySiteIds": ChildLeavesResult}
ChildLeavesResult
Description
Represents the paginated result of listing child leaves
Fields
Field Name | Description |
---|---|
result -
[ChildLeave!]!
|
A paginated list of child leaves. NOTE: If the |
next -
ChildLeaveCursor
|
If this token is not empty, use this as an argument to fetch the next set of child leaves. |
Example
{
"result": [ChildLeave],
"next": "0c83793f-2ce6-458e-8d08-78d3910bdccb"
}
ChildUpdate
Description
Input for updating a child
Fields
Input Field | Description |
---|---|
childId -
ChildId!
|
|
name -
NameInput!
|
|
gender -
Gender
|
|
birthday -
LocalDate
|
|
currentGroupId -
GroupId!
|
|
records -
[RecordInput!]!
|
|
sensitiveRecords -
[RecordInput!]!
|
|
sitesRelation -
[SiteRelationInput!]!
|
Example
{
"childId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"name": NameInput,
"gender": "FEMALE",
"birthday": "2020-07-19",
"currentGroupId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"records": [RecordInput],
"sensitiveRecords": [RecordInput],
"sitesRelation": [SiteRelationInput]
}
ChildrenListResult
Description
Represents the paginated result of listing children
Fields
Field Name | Description |
---|---|
result -
[Child!]!
|
A paginated list of children. NOTE: If the |
next -
ChildCursor
|
If this token is not empty, use this as an argument to fetch the next set of children. |
Example
{
"result": [Child],
"next": "0c83793f-2ce6-458e-8d08-78d3910bdccb"
}
ChildrenMutation
Description
For creating and updating children
Fields
Field Name | Description |
---|---|
create -
[Child!]!
|
After creating children, returns list of them |
Arguments
|
|
update -
[Child!]!
|
After updating children, returns list of them |
Arguments
|
|
delete -
[ChildId!]!
|
|
Arguments
|
|
moveGroup -
[GroupMove!]!
|
Plans a group move for children. If the plan means that a child would also be in a different group today, the child's current group is also set. |
Arguments |
|
cancelGroupMove -
[GroupMove!]!
|
Cancel a group move for a child. If the cancelled move means that the child would also be in a different group today, the child's current group is also set. |
Arguments |
Example
{
"create": [Child],
"update": [Child],
"delete": [
"0c83793f-2ce6-458e-8d08-78d3910bdccb"
],
"moveGroup": [GroupMove],
"cancelGroupMove": [GroupMove]
}
ChildrenQueries
Description
For querying children
Fields
Field Name | Description |
---|---|
listBySiteIds -
ChildrenListResult!
|
A paginated list of children that are in the given Site IDs. By default neither past nor future children are listed. To include these, use the Example:
You can expand these time ranges so that you will get all past and future children, e.g. |
Arguments
|
|
listByChildIds -
ChildrenListResult!
|
A paginated list of children based on the provided Child IDs. |
Arguments
|
|
list -
ChildrenListResult!
|
A paginated list of children.
Please use listBySiteIds or listByChildIds instead
|
Arguments
|
Example
{
"listBySiteIds": ChildrenListResult,
"listByChildIds": ChildrenListResult,
"list": ChildrenListResult
}
ClosedLocalDateRange
Fields
Input Field | Description |
---|---|
from -
LocalDate!
|
|
to -
LocalDate!
|
Example
{
"from": "2020-07-19",
"to": "2020-07-19"
}
Contact
Description
Represents a child contact
Fields
Field Name | Description |
---|---|
id -
ContactId!
|
|
name -
Name!
|
|
email -
EmailAddress
|
|
address -
Address
|
|
phoneNumbers -
[PhoneNumberType!]!
|
|
childIds -
[ChildId!]!
|
|
profileImage -
ProfileImage
|
|
roles -
[RoleAssignment!]!
|
|
roleInvitations -
[RoleInvitation!]!
|
A list of all invitations to assume a role in the system send to the contact. Note that invitations expire after a certain period of time after which they won't show up in the list. |
emergencyContact -
Boolean!
|
|
records -
[Record!]!
|
Basic child's contact info records. Currently available are:
|
Arguments
|
Example
{
"id": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"name": Name,
"email": "example@famly.co",
"address": Address,
"phoneNumbers": [PhoneNumberType],
"childIds": [
"0c83793f-2ce6-458e-8d08-78d3910bdccb"
],
"profileImage": ProfileImage,
"roles": [RoleAssignment],
"roleInvitations": [RoleInvitation],
"emergencyContact": false,
"records": [Record]
}
ContactCursor
Description
A string representing a cursor into a paged result
Example
"0c83793f-2ce6-458e-8d08-78d3910bdccb"
ContactId
Description
A string containing a 36-character UUID
Example
"0c83793f-2ce6-458e-8d08-78d3910bdccb"
ContactInput
Description
Input for creating a contact.
If you add a roles to the contact which does not yet have a login, this will create a login for them.
Supported roles:
- Parent:
d27c12e8-e1bf-4cb6-b10e-def7a83e3350
- Family:
2a8c1370-3ea7-40e8-9a60-8773bbe66c5e
Fields
Input Field | Description |
---|---|
name -
NameInput!
|
|
email -
EmailAddress
|
|
address -
AddressInput
|
|
phoneNumbers -
[PhoneInput!]!
|
|
records -
[RecordInput!]!
|
|
childIds -
[ChildId!]!
|
|
roles -
[RoleAssignmentInput!]!
|
|
emergencyContact -
Boolean
|
Example
{
"name": NameInput,
"email": "example@famly.co",
"address": AddressInput,
"phoneNumbers": [PhoneInput],
"records": [RecordInput],
"childIds": [
"0c83793f-2ce6-458e-8d08-78d3910bdccb"
],
"roles": [RoleAssignmentInput],
"emergencyContact": false
}
ContactListResult
Description
Represents the paginated result of listing contacts
Fields
Field Name | Description |
---|---|
result -
[Contact!]!
|
A paginated list of children contacts. NOTE: If the |
next -
ContactCursor
|
If this token is not empty, use this as an argument to fetch the next set of children contacts. |
Example
{
"result": [Contact],
"next": "0c83793f-2ce6-458e-8d08-78d3910bdccb"
}
ContactQueries
Description
For querying contacts
Fields
Field Name | Description |
---|---|
list -
ContactListResult!
|
A paginated list of children contacts. |
Arguments
|
Example
{"list": ContactListResult}
ContactRecordKey
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
Example
"TITLE"
ContactUpdate
Description
Input for updating a contact
Fields
Input Field | Description |
---|---|
id -
ContactId!
|
|
name -
NameInput!
|
|
email -
EmailAddress
|
|
address -
AddressInput
|
|
phoneNumbers -
[PhoneInput!]!
|
|
records -
[RecordInput!]!
|
|
roles -
[RoleAssignmentInput!]!
|
|
emergencyContact -
Boolean
|
Example
{
"id": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"name": NameInput,
"email": "example@famly.co",
"address": AddressInput,
"phoneNumbers": [PhoneInput],
"records": [RecordInput],
"roles": [RoleAssignmentInput],
"emergencyContact": true
}
ContactsMutation
Description
For creating and updating contacts
Fields
Field Name | Description |
---|---|
create -
[Contact!]!
|
After creating contacts, returns list of them |
Arguments
|
|
update -
[Contact!]!
|
After updating contacts, returns list of them |
Arguments
|
Example
{
"create": [Contact],
"update": [Contact]
}
CreateCreditNoteOutput
Description
Return the invoice ID and invoice number
Fields
Field Name | Description |
---|---|
invoiceId -
InvoiceId!
|
|
invoiceNumber -
String!
|
Example
{
"invoiceId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"invoiceNumber": "abc123"
}
EmailAddress
Description
A string containing a possibly valid email address
Example
"example@famly.co"
Employee
Description
Someone who works in an institution
Fields
Field Name | Description |
---|---|
id -
EmployeeId!
|
The Famly ID for the employee |
name -
Name!
|
The name of the employee |
siteId -
SiteId!
|
The site this employee works at |
groupId -
GroupId!
|
The group the employee belongs to |
group -
Group!
|
The group the employee belongs to |
profileImage -
ProfileImage
|
The employees profile image |
email -
EmailAddress
|
The email of the employee |
title -
String
|
The title of the employee, e.g. 'Temp staff' |
birthDate -
LocalDate
|
The date of birth for the employee |
phoneNumber -
PhoneNumberType
|
The phone number of the employee |
address -
Address
|
The address of the employee |
firstDay -
LocalDate!
|
The date the employee starts working |
lastDay -
LocalDate
|
The last day the employee works at the site |
roleId -
RoleId
|
The role, if any, granted to this employee |
role -
EmployeeAssignee
|
The role, if any, granted to this employee
Please use roleId instead
|
Example
{
"id": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"name": Name,
"siteId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"groupId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"group": Group,
"profileImage": ProfileImage,
"email": "example@famly.co",
"title": "abc123",
"birthDate": "2020-07-19",
"phoneNumber": PhoneNumberType,
"address": Address,
"firstDay": "2020-07-19",
"lastDay": "2020-07-19",
"roleId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"role": EmployeeAssignee
}
EmployeeAssignee
Description
An employee at a given institution
Fields
Field Name | Description |
---|---|
employeeId -
EmployeeId!
|
|
person -
Person!
|
|
institutionSetId -
InstitutionSetId!
|
|
roleId -
RoleId!
|
The ID of the role that has been assigned |
Example
{
"employeeId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"person": Person,
"institutionSetId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"roleId": "0c83793f-2ce6-458e-8d08-78d3910bdccb"
}
EmployeeCheckInId
Description
A string containing a 36-character UUID
Example
"0c83793f-2ce6-458e-8d08-78d3910bdccb"
EmployeeCheckin
Description
Represents an employee checkin
Fields
Field Name | Description |
---|---|
result -
[EmployeeCheckinResult!]!
|
A paginated list of Employee checkins |
next -
CheckinCursor
|
If this token is not empty, use this as an argument to fetch the next set of employee checkins |
Example
{
"result": [EmployeeCheckinResult],
"next": "0c83793f-2ce6-458e-8d08-78d3910bdccb"
}
EmployeeCheckinQueries
Description
For querying checkins for employees
Fields
Field Name | Description |
---|---|
list -
EmployeeCheckin!
|
Get all checkins |
Arguments
|
Example
{"list": EmployeeCheckin}
EmployeeCheckinResult
Description
Represents a paginated result of employee checkins
Fields
Field Name | Description |
---|---|
id -
EmployeeCheckInId!
|
Checkin Id |
employeeId -
EmployeeId!
|
Employee id |
siteId -
SiteId!
|
Site id |
groupId -
GroupId!
|
Group id |
checkinTime -
ZonedDateTime!
|
The time the employee checked in |
estimatedCheckoutTime -
ZonedDateTime
|
The (optional) expected checkout time of the employee. |
checkoutTime -
ZonedDateTime
|
The optional time the employee was checked out |
Example
{
"id": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"employeeId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"siteId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"groupId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"checkinTime": ZonedDateTime,
"estimatedCheckoutTime": ZonedDateTime,
"checkoutTime": ZonedDateTime
}
EmployeeId
Description
A string containing a 36-character UUID
Example
"0c83793f-2ce6-458e-8d08-78d3910bdccb"
EmployeeInput
Fields
Input Field | Description |
---|---|
name -
String!
|
|
groupId -
GroupId!
|
|
email -
EmailAddress
|
|
title -
String
|
|
birthDate -
LocalDate
|
|
phoneNumber -
String
|
|
address -
AddressInput
|
|
firstDay -
LocalDate!
|
|
lastDay -
LocalDate
|
|
roleId -
RoleId
|
|
institutionId -
InstitutionId!
|
Example
{
"name": "abc123",
"groupId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"email": "example@famly.co",
"title": "abc123",
"birthDate": "2020-07-19",
"phoneNumber": "xyz789",
"address": AddressInput,
"firstDay": "2020-07-19",
"lastDay": "2020-07-19",
"roleId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"institutionId": "0c83793f-2ce6-458e-8d08-78d3910bdccb"
}
EmployeeLeave
Description
Represents an employee leave
Fields
Field Name | Description |
---|---|
leaveId -
EmployeeLeaveId!
|
Employee leave ID |
employeeId -
EmployeeId!
|
Employee ID |
siteId -
InstitutionId!
|
Site ID |
date -
LocalDate!
|
Leave date |
leaveType -
String!
|
Leave type |
leaveSubTypeName -
String
|
Leave subtype name |
leaveSubTypeCode -
String
|
Leave subtype code |
reason -
String
|
Leave reason |
startTime -
LocalDateTime
|
For hourly leave: start time of a leave |
endTime -
LocalDateTime
|
For hourly leave: end time of a leave |
hours -
Float
|
|
deletedAt -
LocalDateTime
|
For leaves that were deleted: deletion time. Null for active leaves |
Example
{
"leaveId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"employeeId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"siteId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"date": "2020-07-19",
"leaveType": "abc123",
"leaveSubTypeName": "abc123",
"leaveSubTypeCode": "xyz789",
"reason": "xyz789",
"startTime": "2022-10-07T01:08:03.420Z",
"endTime": "2022-10-07T01:08:03.420Z",
"hours": 123.45,
"deletedAt": "2022-10-07T01:08:03.420Z"
}
EmployeeLeaveCursor
Description
A string representing a cursor into a paged result
Example
"0c83793f-2ce6-458e-8d08-78d3910bdccb"
EmployeeLeaveId
Description
A string containing a 36-character UUID
Example
"0c83793f-2ce6-458e-8d08-78d3910bdccb"
EmployeeLeaveMutations
Description
For mutating employee leaves
Fields
Field Name | Description |
---|---|
delete -
EmployeeLeaveId!
|
Delete an employee leave by passing the id of the employee leave as parameter. The method returns the employee leave id of the leave that has been deleted. |
Arguments
|
Example
{
"delete": "0c83793f-2ce6-458e-8d08-78d3910bdccb"
}
EmployeeLeaveQueries
Description
For querying employee leaves
Fields
Field Name | Description |
---|---|
listBySiteIds -
EmployeeLeavesResult!
|
A paginated list of employees' leaves in the given a list of organization, area or institution IDs |
Arguments
|
Example
{"listBySiteIds": EmployeeLeavesResult}
EmployeeLeavesResult
Description
Represents the paginated result of listing employee leaves
Fields
Field Name | Description |
---|---|
result -
[EmployeeLeave!]!
|
A paginated list of employee leaves. NOTE: If the |
next -
EmployeeLeaveCursor
|
If this token is not empty, use this as an argument to fetch the next set of employee leaves. |
Example
{
"result": [EmployeeLeave],
"next": "0c83793f-2ce6-458e-8d08-78d3910bdccb"
}
EmployeeMutations
Description
For managing employees
Fields
Field Name | Description |
---|---|
create -
[Employee!]!
|
Create one or more employees |
Arguments
|
|
update -
[Employee!]!
|
Update one or more employees. You can use employeesArg to update a full employee, or one of the arguments, e.g. roles , to update a single field |
Arguments
|
|
delete -
[EmployeeId!]!
|
Delete one or more employees. |Permanently deletes the data related to the employees with the given employeeIds . This includes but is not limited to: |* Profile information |* Role assignments |* Qualification data |* Checkin data |* Leave data |* Staff rota data | |NOTE: This action is irreversible. Data
cannot be retrieved afterwards. | |
Arguments
|
Example
{
"create": [Employee],
"update": [Employee],
"delete": [
"0c83793f-2ce6-458e-8d08-78d3910bdccb"
]
}
EmployeeQueries
Description
For querying employees
Fields
Field Name | Description |
---|---|
list -
EmployeesResult!
|
List current employees |
Arguments
|
Example
{"list": EmployeesResult}
EmployeeUpdate
Fields
Input Field | Description |
---|---|
employeeId -
EmployeeId!
|
|
name -
String!
|
|
groupId -
GroupId!
|
|
email -
EmailAddress
|
|
title -
String
|
|
birthDate -
LocalDate
|
|
phoneNumber -
String
|
|
address -
AddressInput
|
|
firstDay -
LocalDate!
|
|
lastDay -
LocalDate
|
|
roleId -
RoleId
|
Example
{
"employeeId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"name": "xyz789",
"groupId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"email": "example@famly.co",
"title": "abc123",
"birthDate": "2020-07-19",
"phoneNumber": "xyz789",
"address": AddressInput,
"firstDay": "2020-07-19",
"lastDay": "2020-07-19",
"roleId": "0c83793f-2ce6-458e-8d08-78d3910bdccb"
}
EmployeeUpdateAddress
Fields
Input Field | Description |
---|---|
employeeId -
EmployeeId!
|
|
address -
AddressInput
|
Example
{
"employeeId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"address": AddressInput
}
EmployeeUpdateBirthDate
Fields
Input Field | Description |
---|---|
employeeId -
EmployeeId!
|
|
birthDate -
LocalDate
|
Example
{
"employeeId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"birthDate": "2020-07-19"
}
EmployeeUpdateEmail
Fields
Input Field | Description |
---|---|
employeeId -
EmployeeId!
|
|
email -
EmailAddress
|
Example
{
"employeeId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"email": "example@famly.co"
}
EmployeeUpdateGroupId
Fields
Input Field | Description |
---|---|
employeeId -
EmployeeId!
|
|
groupId -
GroupId!
|
Example
{
"employeeId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"groupId": "0c83793f-2ce6-458e-8d08-78d3910bdccb"
}
EmployeeUpdateName
Fields
Input Field | Description |
---|---|
employeeId -
EmployeeId!
|
|
name -
NameInput!
|
Example
{
"employeeId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"name": NameInput
}
EmployeeUpdatePhone
Fields
Input Field | Description |
---|---|
employeeId -
EmployeeId!
|
|
phone -
PhoneNumber
|
Example
{
"employeeId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"phone": "+17895551234"
}
EmployeeUpdateRange
Fields
Input Field | Description |
---|---|
employeeId -
EmployeeId!
|
|
range -
ClosedLocalDateRange!
|
Example
{
"employeeId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"range": ClosedLocalDateRange
}
EmployeeUpdateRoleId
Fields
Input Field | Description |
---|---|
employeeId -
EmployeeId!
|
|
roleId -
RoleId
|
Example
{
"employeeId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"roleId": "0c83793f-2ce6-458e-8d08-78d3910bdccb"
}
EmployeeUpdateTitle
Fields
Input Field | Description |
---|---|
employeeId -
EmployeeId!
|
|
title -
String
|
Example
{
"employeeId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"title": "abc123"
}
EmployeesResult
Description
Paged results for employees (Not currently paged)
Fields
Field Name | Description |
---|---|
employees -
[Employee!]!
|
Example
{"employees": [Employee]}
EmployeesWithAssignedShiftsPublicType
Fields
Field Name | Description |
---|---|
employee -
Employee
|
|
scheduledMinutes -
Int!
|
|
assignedShifts -
[AssignedShiftsPublicType!]!
|
Example
{
"employee": Employee,
"scheduledMinutes": 123,
"assignedShifts": [AssignedShiftsPublicType]
}
ErrorReportResponse
Description
Return the invoice ID and indication on whether the error was sucessfully reported
Fields
Field Name | Description |
---|---|
invoiceId -
InvoiceId!
|
|
success -
Boolean!
|
Example
{
"invoiceId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"success": true
}
ExternalSystemName
Values
Enum Value | Description |
---|---|
|
Integration with Xero |
|
Integration with XLedger |
|
Integration with QuickBooks |
|
Integration with an unknown system |
|
Integration with custom systems |
Example
"XERO"
FileMutations
Description
For managing files
Fields
Field Name | Description |
---|---|
getSignedUrl -
FileUpload!
|
Get a signed upload URL and HMAC for uploading files to Famly |
Arguments
|
|
getSignedUrls -
[BatchFileUpload!]!
|
Get a signed upload URL and HMAC for uploading files to Famly for multiple files in one batch |
Arguments
|
Example
{
"getSignedUrl": FileUpload,
"getSignedUrls": [BatchFileUpload]
}
FileUpload
FileUploadInput
Float
Description
The Float
scalar type represents signed double-precision fractional values as specified by
IEEE 754.
Example
987.65
FoodItem
Fields
Field Name | Description |
---|---|
title -
String!
|
Example
{"title": "abc123"}
ForeignIdReferenceInput
Description
Foreign ID with foreign system information
Fields
Input Field | Description |
---|---|
foreignId -
String!
|
Foreign ID |
foreignSystem -
ForeignSystem
|
Please use |
system -
String
|
The name of the system where the foreign ID is used |
Example
{
"foreignId": "xyz789",
"foreignSystem": "KITA_PLANER",
"system": "abc123"
}
ForeignSystem
Description
Specify the system the foreign ID belongs to. Deprecated
Values
Enum Value | Description |
---|---|
|
|
|
Example
"KITA_PLANER"
Gender
Values
Enum Value | Description |
---|---|
|
|
|
Example
"FEMALE"
Group
Description
Represents a physical room in an institution
Fields
Field Name | Description |
---|---|
id -
GroupId!
|
|
title -
String!
|
|
description -
String
|
A plain-text description of the group |
institutionId -
InstitutionId!
|
|
staffRatio -
Float
|
|
ordering -
Int
|
|
profileImage -
ProfileImage
|
Example
{
"id": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"title": "abc123",
"description": "xyz789",
"institutionId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"staffRatio": 123.45,
"ordering": 987,
"profileImage": ProfileImage
}
GroupId
Description
A string containing a 36-character UUID
Example
"0c83793f-2ce6-458e-8d08-78d3910bdccb"
GroupInput
Fields
Input Field | Description |
---|---|
title -
String!
|
|
description -
String
|
|
institutionId -
InstitutionId!
|
Example
{
"title": "abc123",
"description": "abc123",
"institutionId": "0c83793f-2ce6-458e-8d08-78d3910bdccb"
}
GroupMove
Fields
Field Name | Description |
---|---|
childId -
ChildId!
|
|
groupId -
GroupId!
|
|
date -
LocalDate!
|
|
group -
Group!
|
|
time -
LocalTime
|
This field is not used anymore and will always be empty |
Example
{
"childId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"groupId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"date": "2020-07-19",
"group": Group,
"time": "08:45:59"
}
GroupMutations
Description
For managing groups (rooms)
Fields
Field Name | Description |
---|---|
create -
[Group!]!
|
Create one or more groups |
Arguments
|
|
update -
[Group!]!
|
Update one or more groups |
Arguments
|
Example
{
"create": [Group],
"update": [Group]
}
GroupQueries
Description
For querying groups
Fields
Field Name | Description |
---|---|
list -
[Group!]!
|
List groups by either GroupId or InstitutionId |
Arguments
|
Example
{"list": [Group]}
GroupUpdate
HMAC
Description
A HMAC used to secure a request
Example
HMAC
InquiryId
Description
A string containing a 36-character UUID
Example
"0c83793f-2ce6-458e-8d08-78d3910bdccb"
InquiryInput
Description
Input for creating a new inquiry
Fields
Input Field | Description |
---|---|
name -
NameInput!
|
|
birthday -
LocalDate!
|
|
gender -
Gender!
|
|
startDate -
LocalDate!
|
|
siteId -
SiteId!
|
|
referenceNumber -
ForeignIdReferenceInput
|
|
contacts -
[ChildInquiryContact!]!
|
|
note -
String
|
Example
{
"name": NameInput,
"birthday": "2020-07-19",
"gender": "FEMALE",
"startDate": "2020-07-19",
"siteId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"referenceNumber": ForeignIdReferenceInput,
"contacts": [ChildInquiryContact],
"note": "abc123"
}
InstitutionId
Description
A string containing a 36 character UUID
Example
"0c83793f-2ce6-458e-8d08-78d3910bdccb"
InstitutionPosition
InstitutionSetId
Description
A string containing a 36 character UUID
Example
"0c83793f-2ce6-458e-8d08-78d3910bdccb"
Int
Description
The Int
scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.
Example
987
InvalidRoleInvitation
Fields
Field Name | Description |
---|---|
error -
String!
|
|
roleInvitationId -
RoleInvitationId!
|
|
roleTitle -
String!
|
|
roleId -
RoleId!
|
|
verification -
RoleInvitationVerification!
|
|
siteTitle -
String!
|
|
privacyPolicyLink -
String
|
Example
{
"error": "abc123",
"roleInvitationId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"roleTitle": "xyz789",
"roleId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"verification": RoleInvitationVerification,
"siteTitle": "abc123",
"privacyPolicyLink": "abc123"
}
Invoice
Fields
Field Name | Description |
---|---|
invoiceId -
InvoiceId!
|
|
title -
String
|
|
total -
BadMoney!
|
|
invoiceDate -
LocalDate!
|
|
dueDate -
LocalDate!
|
|
billPayerId -
BillPayerId!
|
|
lines -
[InvoiceLines!]!
|
|
pdfResult -
InvoicePdfResultType
|
|
invoiceNumber -
String!
|
Example
{
"invoiceId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"title": "xyz789",
"total": BadMoney,
"invoiceDate": "2020-07-19",
"dueDate": "2020-07-19",
"billPayerId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"lines": [InvoiceLines],
"pdfResult": InvoicePdfSuccessType,
"invoiceNumber": "xyz789"
}
InvoiceCursor
Description
A string representing a cursor into a paged result
Example
"0c83793f-2ce6-458e-8d08-78d3910bdccb"
InvoiceId
Description
A string containing a 36-character UUID
Example
"0c83793f-2ce6-458e-8d08-78d3910bdccb"
InvoiceInput
Description
Input for creating an invoice
Fields
Input Field | Description |
---|---|
billPayer -
BillPayerReferenceInput!
|
Reference for bill payer |
invoiceNumber -
Int!
|
The invoice number. Must be positive and unique within an organization; if a site is not part of an organization, must be unique for the site. |
invoiceDate -
LocalDate!
|
The invoice date |
dueDate -
LocalDate!
|
The invoice due date |
note -
String
|
A free-text note on the invoice |
lines -
[InvoiceLinesInput!]!
|
The invoice line items |
pdf -
FileUploadInput
|
The invoice PDF upload URL and HMAC |
Example
{
"billPayer": BillPayerReferenceInput,
"invoiceNumber": 123,
"invoiceDate": "2020-07-19",
"dueDate": "2020-07-19",
"note": "abc123",
"lines": [InvoiceLinesInput],
"pdf": FileUploadInput
}
InvoiceLines
Description
The lines that make up an invoice
Fields
Field Name | Description |
---|---|
type -
String!
|
|
childId -
ChildId
|
|
info -
String
|
|
amount -
BadMoney
|
|
account -
AccountType
|
A financial/ledger account |
Example
{
"type": "xyz789",
"childId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"info": "abc123",
"amount": BadMoney,
"account": AccountType
}
InvoiceLinesInput
Description
Input for creating invoice lines. Currently supports only creation of custom lines.
Example
{
"childId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"info": "abc123",
"amount": BadMoney
}
InvoiceListingResult
Fields
Field Name | Description |
---|---|
result -
[Invoice!]!
|
|
next -
InvoiceCursor
|
Example
{
"result": [Invoice],
"next": "0c83793f-2ce6-458e-8d08-78d3910bdccb"
}
InvoiceMutations
Description
For managing invoices
Fields
Field Name | Description |
---|---|
create -
[Invoice!]!
|
Create invoices using the provided invoice line items. |
Arguments
|
|
setPdf -
SetPdfResult!
|
Associate an uploaded PDF with the given invoice, replacing any existing PDF. |
Arguments
|
|
reportError -
ErrorReportResponse!
|
Report an error message for an invoice from an external party |
Arguments
|
|
createCreditNote -
CreateCreditNoteOutput!
|
Create credit note for an invoice |
Arguments
|
Example
{
"create": [Invoice],
"setPdf": SetPdfResult,
"reportError": ErrorReportResponse,
"createCreditNote": CreateCreditNoteOutput
}
InvoicePdfFailedType
Description
Invoice PDF creation failed
Fields
Field Name | Description |
---|---|
errors -
[String!]!
|
Example
{"errors": ["xyz789"]}
InvoicePdfResultType
Description
The result of Invoice PDF creation
Types
Union Types |
---|
Example
InvoicePdfSuccessType
InvoicePdfSuccessType
Description
Invoice PDF creation succeeded
Fields
Field Name | Description |
---|---|
succeeded -
Boolean!
|
Example
{"succeeded": false}
InvoiceQueries
Description
For querying invoice data
Fields
Field Name | Description |
---|---|
listBySiteIds -
InvoiceListingResult!
|
A paginated list of invoices. |
Arguments
|
Example
{"listBySiteIds": InvoiceListingResult}
InvoiceRecipient
Description
An invoice recipient
Fields
Field Name | Description |
---|---|
relationId -
RelationId!
|
Uniquely identifies a child's contact person in Famly
Use the equivalent contactId field instead.
|
contactId -
ContactId!
|
Uniquely identifies a child's contact person in Famly |
billPayerId -
BillPayerId!
|
|
name -
String!
|
|
email -
EmailAddress
|
Example
{
"relationId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"contactId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"billPayerId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"name": "xyz789",
"email": "example@famly.co"
}
InvoiceRecipientDeleteInput
Description
Input for deleting an invoice recipient. billPayerId and relationId are always required.
Fields
Input Field | Description |
---|---|
relationId -
RelationId!
|
|
billPayerId -
BillPayerId!
|
Example
{
"relationId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"billPayerId": "0c83793f-2ce6-458e-8d08-78d3910bdccb"
}
InvoiceRecipientDeleteResult
Fields
Field Name | Description |
---|---|
billPayerId -
BillPayerId!
|
|
relationId -
RelationId!
|
Uniquely identifies a child's contact person in Famly |
Example
{
"billPayerId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"relationId": "0c83793f-2ce6-458e-8d08-78d3910bdccb"
}
InvoiceRecipientInput
Description
Input for creating an invoice recipient. relationId is required when creating an invoice recipient from an existing contact/relation. childId, name, and email are required when creating an invoice recipient without an existing contact/relation. billPayerId is always required when adding invoice recipients for existing bill payers.
Fields
Input Field | Description |
---|---|
relationId -
RelationId
|
|
billPayerId -
BillPayerId
|
|
childId -
ChildId
|
|
name -
NameInput
|
|
email -
ValidEmailAddress
|
Example
{
"relationId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"billPayerId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"childId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"name": NameInput,
"email": "example@famly.co"
}
InvoiceReference
Description
Details for referencing a specific invoice in Famly
Fields
Input Field | Description |
---|---|
invoiceId -
InvoiceId
|
|
externalId -
String
|
|
siteId -
SiteId
|
|
tags -
[ReferenceTag!]!
|
Example
{
"invoiceId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"externalId": "abc123",
"siteId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"tags": [ReferenceTag]
}
LeaveBalancesMutations
Description
For modifying leave balances
Fields
Field Name | Description |
---|---|
setEmployeeBalanceOverride -
Float
|
|
Arguments
|
Example
{"setEmployeeBalanceOverride": 987.65}
LeaveBalancesQueries
Description
For querying leave balances
Fields
Field Name | Description |
---|---|
balanceOverridesByEmployee -
[StaffLeaveBalance!]!
|
List of overrides of leave balances for an employee. |
Arguments
|
|
balanceOverrideByEmployeeAndLeaveType -
StaffLeaveBalance!
|
Get single leave balance override for an employee. |
Arguments
|
Example
{
"balanceOverridesByEmployee": [StaffLeaveBalance],
"balanceOverrideByEmployeeAndLeaveType": StaffLeaveBalance
}
LeavesMutations
Description
For mutating leaves for children and employees
Fields
Field Name | Description |
---|---|
employees -
EmployeeLeaveMutations!
|
For mutating employee leaves |
Example
{"employees": EmployeeLeaveMutations}
LeavesQueries
Description
For querying leaves for children and employees
Fields
Field Name | Description |
---|---|
employees -
EmployeeLeaveQueries!
|
For querying employee leaves |
children -
ChildLeavesQueries!
|
For querying child leaves |
Example
{
"employees": EmployeeLeaveQueries,
"children": ChildLeavesQueries
}
LocalDate
Description
A string containing a local date in the ISO-8601 format, e.g. YYYY-MM-DD
Example
"2020-07-19"
LocalDateTime
Description
A string containing a local date time in the ISO-8601 format, e.g. 'YYYY-MM-DDTHH:mm:ss'
Example
"2022-10-07T01:08:03.420Z"
LocalTime
Description
A string containing a local time in ISO format, i.e. HH:MM:SS. Example: 10:15:36.
Example
"08:45:59"
MealPlan
Description
Meal plan information
Fields
Field Name | Description |
---|---|
siteId -
SiteId!
|
The site for the meal plan |
mealPlanId -
MealPlanId!
|
ID of the meal plan |
date -
LocalDate!
|
Meal plan day |
meals -
[MealTypeItems!]!
|
The meals on this day |
Example
{
"siteId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"mealPlanId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"date": "2020-07-19",
"meals": [MealTypeItems]
}
MealPlanCursor
Description
A string representing a cursor into a paged result
Example
"0c83793f-2ce6-458e-8d08-78d3910bdccb"
MealPlanId
Description
A string containing a 36-character UUID
Example
"0c83793f-2ce6-458e-8d08-78d3910bdccb"
MealPlanQueries
Description
For querying meal plans
Fields
Field Name | Description |
---|---|
list -
MealPlanResult!
|
List the default meal plans for the current and coming week, unless additional filters are provided |
Arguments
|
Example
{"list": MealPlanResult}
MealPlanResult
Description
Meal plan results with pagination
Fields
Field Name | Description |
---|---|
next -
MealPlanCursor
|
|
result -
[MealPlan!]!
|
The meal plan data for each day |
Example
{
"next": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"result": [MealPlan]
}
MealQueries
Description
For querying meals
Fields
Field Name | Description |
---|---|
planned -
MealPlanQueries!
|
For querying meal plans |
Example
{"planned": MealPlanQueries}
MealTypeItems
Description
Meal information
Fields
Field Name | Description |
---|---|
mealType -
PublicMealType!
|
Meal type information |
mealItems -
[FoodItem!]!
|
Meal items |
Example
{
"mealType": PublicMealType,
"mealItems": [FoodItem]
}
MovedInvoice
Description
Moved invoice object
Fields
Field Name | Description |
---|---|
invoiceId -
InvoiceId!
|
Example
{
"invoiceId": "0c83793f-2ce6-458e-8d08-78d3910bdccb"
}
MovedInvoicesAndPayments
Description
An object containing a list of invoices and a list of payments
Fields
Field Name | Description |
---|---|
invoices -
[MovedInvoice!]!
|
|
payments -
[MovedPayment!]!
|
Example
{
"invoices": [MovedInvoice],
"payments": [MovedPayment]
}
MovedPayment
Description
Moved payment object
Fields
Field Name | Description |
---|---|
paymentId -
PaymentId!
|
Example
{
"paymentId": "0c83793f-2ce6-458e-8d08-78d3910bdccb"
}
Name
NameInput
Description
A string containing name input for a user
Example
NameInput
NoVerification
Fields
Field Name | Description |
---|---|
verificationMethod -
RoleInvitationVerificationMethod!
|
Example
{"verificationMethod": "DATE_OF_BIRTH"}
NonEmptyLocalDateRangeInput
Fields
Input Field | Description |
---|---|
from -
LocalDate!
|
|
to -
LocalDate
|
Example
{
"from": "2020-07-19",
"to": "2020-07-19"
}
OpenShiftsPublicType
Fields
Field Name | Description |
---|---|
date -
LocalDate!
|
|
shifts -
[ShiftPublicType!]!
|
Example
{
"date": "2020-07-19",
"shifts": [ShiftPublicType]
}
OpeningHours
Fields
Field Name | Description |
---|---|
monday -
TimeRangeClosedLocalTime
|
|
tuesday -
TimeRangeClosedLocalTime
|
|
wednesday -
TimeRangeClosedLocalTime
|
|
thursday -
TimeRangeClosedLocalTime
|
|
friday -
TimeRangeClosedLocalTime
|
|
saturday -
TimeRangeClosedLocalTime
|
|
sunday -
TimeRangeClosedLocalTime
|
Example
{
"monday": TimeRangeClosedLocalTime,
"tuesday": TimeRangeClosedLocalTime,
"wednesday": TimeRangeClosedLocalTime,
"thursday": TimeRangeClosedLocalTime,
"friday": TimeRangeClosedLocalTime,
"saturday": TimeRangeClosedLocalTime,
"sunday": TimeRangeClosedLocalTime
}
OrganizationId
Description
A string containing a 36-character UUID
Example
"0c83793f-2ce6-458e-8d08-78d3910bdccb"
Payment
Description
Details for a specific payment
Fields
Field Name | Description |
---|---|
id -
PaymentId!
|
|
amount -
BadMoney!
|
|
childId -
ChildId
|
|
paymentMethod -
PaymentMethod!
|
|
note -
String!
|
|
paymentDate -
LocalDate!
|
|
billPayer -
BillPayerSummary!
|
|
currency -
String!
|
|
viaFamlyPay -
Boolean!
|
|
isDeposited -
Boolean!
|
|
depositDate -
LocalDate
|
|
depositId -
String
|
|
invoices -
[PaymentInvoiceRelation!]!
|
|
externalSystem -
PaymentExternalSystem
|
Example
{
"id": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"amount": BadMoney,
"childId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"paymentMethod": "GovernmentGrant",
"note": "xyz789",
"paymentDate": "2020-07-19",
"billPayer": BillPayerSummary,
"currency": "abc123",
"viaFamlyPay": true,
"isDeposited": false,
"depositDate": "2020-07-19",
"depositId": "abc123",
"invoices": [PaymentInvoiceRelation],
"externalSystem": PaymentExternalSystem
}
PaymentCursor
Description
A string representing a cursor into a paged result
Example
"0c83793f-2ce6-458e-8d08-78d3910bdccb"
PaymentDeleteResult
Description
Result of delete operation
Fields
Field Name | Description |
---|---|
id -
PaymentId!
|
Example
{
"id": "0c83793f-2ce6-458e-8d08-78d3910bdccb"
}
PaymentExternalSystem
Description
Details of the external system for a specific payment
Fields
Field Name | Description |
---|---|
id -
String!
|
The external ID this payment relates to. |
system -
ExternalSystemName!
|
The name of the external system this payment relates to, or 'CUSTOM' if it is a custom integration. |
name -
String
|
The name of the custom integration. Only relevant if system is set to CUSTOM . |
Example
{
"id": "abc123",
"system": "XERO",
"name": "xyz789"
}
PaymentExternalSystemInput
Description
Input for details of the external system for a specific payment
Fields
Input Field | Description |
---|---|
id -
String!
|
The external ID this payment relates to. |
system -
ExternalSystemName!
|
The name of the external system this payment relates to, or 'CUSTOM' if it is a custom integration. |
name -
String
|
The name of the custom integration. Only relevant if |
Example
{
"id": "xyz789",
"system": "XERO",
"name": "abc123"
}
PaymentId
Description
A string containing a 36-character UUID
Example
"0c83793f-2ce6-458e-8d08-78d3910bdccb"
PaymentInput
Description
Data provided to register a payment in Famly
Fields
Input Field | Description |
---|---|
billPayer -
BillPayerReferenceInput!
|
A reference to the bill payer the payment is registered for. |
externalId -
String
|
Deprecated: Please use |
externalSystem -
PaymentExternalSystemInput
|
The external system this payment relates to. |
amount -
BadMoney!
|
|
childId -
ChildId
|
The child this payment relates to, if any. |
paymentMethod -
PaymentMethod!
|
The payment method used to make the payment. |
note -
String!
|
A note to put on the payment (hidden from parents). |
paymentDate -
LocalDate!
|
The date the payment was made on. |
Example
{
"billPayer": BillPayerReferenceInput,
"externalId": "abc123",
"externalSystem": PaymentExternalSystemInput,
"amount": BadMoney,
"childId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"paymentMethod": "GovernmentGrant",
"note": "xyz789",
"paymentDate": "2020-07-19"
}
PaymentInvoiceRelation
Description
Invoices related to a payment
Fields
Field Name | Description |
---|---|
invoiceId -
InvoiceId!
|
Example
{
"invoiceId": "0c83793f-2ce6-458e-8d08-78d3910bdccb"
}
PaymentListingResult
Fields
Field Name | Description |
---|---|
result -
[Payment!]!
|
|
next -
PaymentCursor
|
Example
{
"result": [Payment],
"next": "0c83793f-2ce6-458e-8d08-78d3910bdccb"
}
PaymentMethod
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"GovernmentGrant"
PaymentMutations
Description
For managing payments
Fields
Field Name | Description |
---|---|
create -
[Payment!]!
|
Register new payments with the provided details. |
Arguments
|
|
update -
[Payment!]!
|
Update existing payments with the provided details. |
Arguments
|
|
delete -
[PaymentDeleteResult!]!
|
Delete payments. |
Arguments
|
Example
{
"create": [Payment],
"update": [Payment],
"delete": [PaymentDeleteResult]
}
PaymentQueries
Description
For querying payment data
Fields
Field Name | Description |
---|---|
listBySiteIds -
PaymentListingResult!
|
A paginated list of payments. |
Arguments
|
Example
{"listBySiteIds": PaymentListingResult}
PaymentUpdateInput
Description
Data provided to update a payment in Famly
Fields
Input Field | Description |
---|---|
paymentId -
PaymentId!
|
ID for payment to be updated |
amount -
BadMoney!
|
|
paymentMethod -
PaymentMethod!
|
The payment method used to make the payment. |
note -
String!
|
A note to put on the payment (hidden from parents). |
paymentDate -
LocalDate!
|
The date the payment was made on. |
Example
{
"paymentId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"amount": BadMoney,
"paymentMethod": "GovernmentGrant",
"note": "xyz789",
"paymentDate": "2020-07-19"
}
Person
Fields
Field Name | Description |
---|---|
name -
Name!
|
|
profileImage -
ProfileImage
|
Example
{
"name": Name,
"profileImage": ProfileImage
}
PhoneInput
Description
Input for a contact phone
Fields
Input Field | Description |
---|---|
value -
PhoneNumber!
|
|
phoneType -
PhoneType!
|
Example
{
"value": "+17895551234",
"phoneType": "MOBILE"
}
PhoneNumber
Description
A string containing a possibly valid phone number
Example
"+17895551234"
PhoneNumberType
PhoneType
Values
Enum Value | Description |
---|---|
|
|
|
|
|
Example
"MOBILE"
ProfileImage
PublicMealType
Record
RecordInput
ReferenceTag
RelationId
Description
A string containing a 36-character UUID
Example
"0c83793f-2ce6-458e-8d08-78d3910bdccb"
Role
RoleAssignee
Description
A login assigned to a specific role
Fields
Field Name | Description |
---|---|
person -
Person!
|
A generic representation of the assignee |
roleId -
RoleId!
|
The ID of the role that has been assigned |
institutionSetId -
InstitutionSetId!
|
Possible Types
RoleAssignee Types |
---|
Example
{
"person": Person,
"roleId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"institutionSetId": "0c83793f-2ce6-458e-8d08-78d3910bdccb"
}
RoleAssignment
RoleAssignmentInput
RoleId
Description
A string containing a 36-character UUID
Example
"0c83793f-2ce6-458e-8d08-78d3910bdccb"
RoleInvitation
Description
Represents an invitation to take on a Role within the application
Fields
Field Name | Description |
---|---|
roleInvitationId -
RoleInvitationId!
|
|
roleTitle -
String!
|
|
roleId -
RoleId!
|
|
verification -
RoleInvitationVerification!
|
|
siteTitle -
String!
|
|
privacyPolicyLink -
String
|
Possible Types
RoleInvitation Types |
---|
Example
{
"roleInvitationId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"roleTitle": "xyz789",
"roleId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"verification": RoleInvitationVerification,
"siteTitle": "abc123",
"privacyPolicyLink": "xyz789"
}
RoleInvitationId
Description
A string containing a 36-character UUID
Example
"0c83793f-2ce6-458e-8d08-78d3910bdccb"
RoleInvitationVerification
Description
Represents the verification steps necessary to accept a RoleInvitation
Fields
Field Name | Description |
---|---|
verificationMethod -
RoleInvitationVerificationMethod!
|
Possible Types
RoleInvitationVerification Types |
---|
Example
{"verificationMethod": "DATE_OF_BIRTH"}
RoleInvitationVerificationMethod
Values
Enum Value | Description |
---|---|
|
|
|
Example
"DATE_OF_BIRTH"
SensitiveChildRecordKey
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"SPECIAL_DIETARY_CONSIDERATIONS"
SetPdfResult
Description
The outcome of setting the PDF for an invoice
Fields
Field Name | Description |
---|---|
success -
Boolean!
|
Example
{"success": true}
ShiftId
Description
A string containing a 36-character UUID
Example
"0c83793f-2ce6-458e-8d08-78d3910bdccb"
ShiftLocationType
ShiftMutationPublicResultType
Fields
Field Name | Description |
---|---|
shift -
ShiftPublicResultType!
|
Example
{"shift": ShiftPublicResultType}
ShiftPlannerByGroupPublicType
Fields
Field Name | Description |
---|---|
groups -
[ShiftsByGroupPublicType!]!
|
Example
{"groups": [ShiftsByGroupPublicType]}
ShiftPlannerByGroupsCursor
Description
A string representing a cursor into a paged result
Example
"0c83793f-2ce6-458e-8d08-78d3910bdccb"
ShiftPlannerByGroupsFilterV2
Fields
Input Field | Description |
---|---|
groupIds -
[GroupId!]!
|
Example
{
"groupIds": [
"0c83793f-2ce6-458e-8d08-78d3910bdccb"
]
}
ShiftPlannerByGroupsPublicResult
Fields
Field Name | Description |
---|---|
result -
ShiftPlannerByGroupPublicType!
|
|
next -
ShiftPlannerByGroupsCursor
|
Example
{
"result": ShiftPlannerByGroupPublicType,
"next": "0c83793f-2ce6-458e-8d08-78d3910bdccb"
}
ShiftPlannerByStaffCursor
Description
A string representing a cursor into a paged result
Example
"0c83793f-2ce6-458e-8d08-78d3910bdccb"
ShiftPlannerByStaffFilter
Fields
Input Field | Description |
---|---|
employeeIds -
[EmployeeId!]!
|
Example
{
"employeeIds": [
"0c83793f-2ce6-458e-8d08-78d3910bdccb"
]
}
ShiftPlannerByStaffPublicResult
Fields
Field Name | Description |
---|---|
result -
ShiftPlannerByStaffPublicType!
|
|
next -
ShiftPlannerByStaffCursor
|
Example
{
"result": ShiftPlannerByStaffPublicType,
"next": "0c83793f-2ce6-458e-8d08-78d3910bdccb"
}
ShiftPlannerByStaffPublicType
Description
Shifts are structured by their assignment: They are either assigned to an employee or open (= unassigned).
Fields
Field Name | Description |
---|---|
openShifts -
[OpenShiftsPublicType!]!
|
|
employees -
[EmployeesWithAssignedShiftsPublicType!]!
|
Example
{
"openShifts": [OpenShiftsPublicType],
"employees": [EmployeesWithAssignedShiftsPublicType]
}
ShiftPlannerPublicMutations
Description
Shift planner public mutations
Fields
Field Name | Description |
---|---|
publish -
ShiftPlannerPublishResultPublicType!
|
Publish draft shifts within date range or, if no date range is specified, publish all draft shifts. |
Arguments
|
|
shift -
ShiftPublicMutations!
|
Example
{
"publish": ShiftPlannerPublishResultPublicType,
"shift": ShiftPublicMutations
}
ShiftPlannerPublicQueries
Description
Shift planner public queries
Fields
Field Name | Description |
---|---|
byGroups -
ShiftPlannerByGroupsPublicResult!
|
Returns all shifts of the site in the given date range organized by groups. Filter: The result can be filtered passing a Pagination: If |
Arguments
|
|
byStaff -
ShiftPlannerByStaffPublicResult!
|
Returns all open shifts and all employees with assigned shifts in the given date range. The result can further be filtered passing a ShiftPlannerByStaffFilter to only include specific employees. |
Arguments
|
Example
{
"byGroups": ShiftPlannerByGroupsPublicResult,
"byStaff": ShiftPlannerByStaffPublicResult
}
ShiftPlannerPublishResultPublicType
Fields
Field Name | Description |
---|---|
publishedShifts -
[ShiftType!]!
|
Example
{"publishedShifts": [ShiftType]}
ShiftPublicInput
Fields
Input Field | Description |
---|---|
date -
LocalDate!
|
|
startTime -
LocalTime!
|
|
endTime -
LocalTime!
|
|
breakMinutes -
Int
|
|
employeeId -
EmployeeId
|
|
groupId -
GroupId!
|
Example
{
"date": "2020-07-19",
"startTime": "08:45:59",
"endTime": "08:45:59",
"breakMinutes": 987,
"employeeId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"groupId": "0c83793f-2ce6-458e-8d08-78d3910bdccb"
}
ShiftPublicMutations
Description
Top level node for shift public mutations
Fields
Field Name | Description |
---|---|
create -
ShiftMutationPublicResultType!
|
Create a new shift. |
Arguments
|
|
update -
ShiftMutationPublicResultType!
|
Update a shift. |
Arguments
|
|
delete -
ShiftMutationPublicResultType!
|
Delete a shift. |
Arguments
|
Example
{
"create": ShiftMutationPublicResultType,
"update": ShiftMutationPublicResultType,
"delete": ShiftMutationPublicResultType
}
ShiftPublicResultType
Fields
Field Name | Description |
---|---|
shiftId -
ShiftId!
|
|
date -
LocalDate!
|
|
startTime -
LocalTime!
|
|
endTime -
LocalTime!
|
|
breakMinutes -
Int
|
|
state -
ShiftState!
|
|
assignedTo -
EmployeeId
|
|
location -
GroupId!
|
Example
{
"shiftId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"date": "2020-07-19",
"startTime": "08:45:59",
"endTime": "08:45:59",
"breakMinutes": 123,
"state": "DRAFT",
"assignedTo": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"location": "0c83793f-2ce6-458e-8d08-78d3910bdccb"
}
ShiftPublicType
Description
A shift can have two states: Draft or Published. Shifts are either assigned to an employee or open (not assigned). All shifts are located in a group/room
Fields
Field Name | Description |
---|---|
shiftId -
ShiftId!
|
|
date -
LocalDate!
|
|
startTime -
LocalTime!
|
|
endTime -
LocalTime!
|
|
breakMinutes -
Int
|
|
state -
ShiftState!
|
|
location -
GroupId!
|
|
assignedTo -
EmployeeId
|
Example
{
"shiftId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"date": "2020-07-19",
"startTime": "08:45:59",
"endTime": "08:45:59",
"breakMinutes": 987,
"state": "DRAFT",
"location": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"assignedTo": "0c83793f-2ce6-458e-8d08-78d3910bdccb"
}
ShiftState
Values
Enum Value | Description |
---|---|
|
|
|
Example
"DRAFT"
ShiftType
Description
A shift can have two states: Draft or Published. Shifts are either assigned to an employee or open (not assigned). All shifts are located in a group/room
Fields
Field Name | Description |
---|---|
shiftId -
ShiftId!
|
|
date -
LocalDate!
|
|
startTime -
ZonedDateTime!
|
This is LocalDateTime faked as UTC! |
endTime -
ZonedDateTime!
|
This is LocalDateTime faked as UTC! |
breakMinutes -
Int
|
|
state -
ShiftState!
|
|
location -
ShiftLocationType
|
|
assignedTo -
EmployeeId
|
Example
{
"shiftId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"date": "2020-07-19",
"startTime": ZonedDateTime,
"endTime": ZonedDateTime,
"breakMinutes": 987,
"state": "DRAFT",
"location": ShiftLocationType,
"assignedTo": "0c83793f-2ce6-458e-8d08-78d3910bdccb"
}
ShiftUpdatePublicInput
Fields
Input Field | Description |
---|---|
shiftId -
ShiftId!
|
|
date -
LocalDate!
|
|
startTime -
LocalTime!
|
|
endTime -
LocalTime!
|
|
breakMinutes -
Int
|
|
employeeId -
EmployeeId
|
|
groupId -
GroupId!
|
Example
{
"shiftId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"date": "2020-07-19",
"startTime": "08:45:59",
"endTime": "08:45:59",
"breakMinutes": 123,
"employeeId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"groupId": "0c83793f-2ce6-458e-8d08-78d3910bdccb"
}
ShiftsByGroupPublicType
Fields
Field Name | Description |
---|---|
groupId -
GroupId!
|
|
title -
String!
|
|
openShifts -
[OpenShiftsPublicType!]!
|
|
employees -
[EmployeesWithAssignedShiftsPublicType!]!
|
Example
{
"groupId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"title": "xyz789",
"openShifts": [OpenShiftsPublicType],
"employees": [EmployeesWithAssignedShiftsPublicType]
}
Site
Description
Represents a single physical site
Fields
Field Name | Description |
---|---|
siteId -
SiteId!
|
The Famly ID for the site |
title -
String!
|
|
address -
Address
|
|
contactPerson -
Name!
|
|
email -
String!
|
|
phone -
PhoneNumberType!
|
|
socialMedia -
SocialMedia
|
|
description -
String
|
|
openingHours -
OpeningHours!
|
|
position -
InstitutionPosition
|
Example
{
"siteId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"title": "abc123",
"address": Address,
"contactPerson": Name,
"email": "example@famly.co",
"phone": PhoneNumberType,
"socialMedia": SocialMedia,
"description": "abc123",
"openingHours": OpeningHours,
"position": InstitutionPosition
}
SiteCursor
Description
A string representing a cursor into a paged result
Example
"0c83793f-2ce6-458e-8d08-78d3910bdccb"
SiteId
Description
A string containing a 36-character UUID
Example
"0c83793f-2ce6-458e-8d08-78d3910bdccb"
SiteQueries
Description
For querying sites
Fields
Field Name | Description |
---|---|
list -
SiteResult!
|
List sites If no arguments are provided, all sites the current user has access to are returned. |
Arguments
|
Example
{"list": SiteResult}
SiteRelation
Description
Represents child relation with sites
Fields
Field Name | Description |
---|---|
firstDay -
LocalDate!
|
Child first day in a site |
lastDay -
LocalDate
|
Child last day in a site, if defined |
site -
Site!
|
Site related to child |
Example
{
"firstDay": "2020-07-19",
"lastDay": "2020-07-19",
"site": Site
}
SiteRelationInput
Description
Input for creating a site relation for a child
Fields
Input Field | Description |
---|---|
siteId -
InstitutionId!
|
|
firstDay -
LocalDate!
|
|
lastDay -
LocalDate
|
Example
{
"siteId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"firstDay": "2020-07-19",
"lastDay": "2020-07-19"
}
SiteResult
Description
Paged results for sites (Not currently paged)
Fields
Field Name | Description |
---|---|
next -
SiteCursor
|
|
result -
[Site!]!
|
Example
{
"next": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"result": [Site]
}
SiteSetId
Description
A string containing a 36-character UUID
Example
"0c83793f-2ce6-458e-8d08-78d3910bdccb"
SocialMedia
StaffLeaveBalance
Description
Represents an employee leave
Fields
Field Name | Description |
---|---|
employeeId -
EmployeeId!
|
Employee ID |
leaveType -
StaffLeaveType!
|
Leave type |
balance -
Float
|
Leave reason |
Example
{
"employeeId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
"leaveType": "SICK",
"balance": 123.45
}
StaffLeaveType
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
Example
"SICK"
Status
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
Example
"VIEWED"
String
Description
The String
scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.
Example
"xyz789"
TimeRangeClosedLocalTime
Fields
Field Name | Description |
---|---|
from -
LocalTime!
|
|
to -
LocalTime!
|
Example
{
"from": "08:45:59",
"to": "08:45:59"
}
URI
Description
A string containing a valid URI
Example
URI
UniqueId
Description
A string containing a 36-character UUID
Example
"0c83793f-2ce6-458e-8d08-78d3910bdccb"
VacationId
Description
A string containing a 36-character UUID
Example
"0c83793f-2ce6-458e-8d08-78d3910bdccb"