Public GraphQL API Reference

This page documents the Public API for the Famly Platform.

The API is implemented using GraphQL, and is available at:

General environment ( https://app.famly.co): - https://famlyapi.famly.co/v1/graphql

DACH environment ( https://app.famly.de): - https://famlyapi.famly.de/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.

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

bankhours

Response

Returns a BankHoursPublicQueries!

Example

Query
query Bankhours {
  bankhours {
    byEmployee {
      current {
        minutes
        validFrom
        employeeId
      }
    }
  }
}
Response
{
  "data": {
    "bankhours": {"byEmployee": BankHoursPublicResult}
  }
}

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
          workTag {
            tagId
            siteId
            name
            color
            code
          }
        }
        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
              locked
              source
              target
              siteSetIds
              createdAt
            }
            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
              locked
              source
              target
              siteSetIds
              createdAt
            }
            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
              locked
              source
              target
              siteSetIds
              createdAt
            }
            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
            locked
            source
            target
            siteSetIds
            createdAt
          }
          targetId
        }
        roleInvitations {
          roleInvitationId
          roleTitle
          roleId
          verification {
            verificationMethod
          }
          siteTitle
          privacyPolicyLink
        }
        emergencyContact
        records {
          key
          value
        }
      }
      next
    }
  }
}
Response
{"data": {"contacts": {"list": ContactListResult}}}

contractedhours

Response

Returns a ContractedHoursPublicQueries!

Example

Query
query Contractedhours {
  contractedhours {
    byEmployee {
      current {
        hours
        minutes
        validFrom
        validTo
      }
      scheduled {
        hours
        minutes
        date
      }
    }
  }
}
Response
{
  "data": {
    "contractedhours": {
      "byEmployee": ContractedHoursPublicResult
    }
  }
}

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
        }
        customEmployeeId
      }
    }
  }
}
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
              locked
              source
              target
              siteSetIds
              createdAt
            }
            targetId
          }
          roleInvitations {
            roleInvitationId
            roleTitle
            roleId
            verification {
              verificationMethod
            }
            siteTitle
            privacyPolicyLink
          }
          emergencyContact
          records {
            key
            value
          }
        }
      }
      source
      bookingSource
      reason
      lostCategory
      lostReason
      actions {
        id
        inquiryId
        type
        lastUpdatedAt
        note
        subject
      }
      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
          minutes
          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
          externalType
        }
      }
      next
    }
  }
}
Response
{
  "data": {
    "payments": {"listBySiteIds": PaymentListingResult}
  }
}

roles

Response

Returns a Roles!

Example

Query
query Roles {
  roles {
    list {
      next
      roles {
        roleId
        title
        locked
        source
        target
        siteSetIds
        createdAt
      }
    }
  }
}
Response
{"data": {"roles": {"list": ListRolesResult}}}

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
              workTag {
                tagId
                name
                color
                code
              }
            }
          }
          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
              }
              customEmployeeId
            }
            scheduledMinutes
            assignedShifts {
              date
              scheduledMinutesOnDay
              shifts {
                shiftId
                date
                startTime
                endTime
                breakMinutes
                state
                location
                assignedTo
                workTag {
                  ...WorkTagPublicAPIResultResultTypeFragment
                }
              }
            }
          }
        }
      }
      next
    }
    byStaff {
      result {
        openShifts {
          date
          shifts {
            shiftId
            date
            startTime
            endTime
            breakMinutes
            state
            location
            assignedTo
            workTag {
              tagId
              name
              color
              code
            }
          }
        }
        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
            }
            customEmployeeId
          }
          scheduledMinutes
          assignedShifts {
            date
            scheduledMinutesOnDay
            shifts {
              shiftId
              date
              startTime
              endTime
              breakMinutes
              state
              location
              assignedTo
              workTag {
                tagId
                name
                color
                code
              }
            }
          }
        }
      }
      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}}}

staffhourstotals

Example

Query
query Staffhourstotals {
  staffhourstotals {
    byStaff {
      dateRange {
        from
        to
      }
      byStaff {
        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 {
                firstName
                middleName
                lastName
                fullName
              }
              profileImage {
                url
              }
            }
            institutionSetId
            roleId
          }
          customEmployeeId
        }
        bankHours {
          minutes
          validFrom
          employeeId
        }
        totals {
          contractedMinutes
          attendedMinutes
          scheduledMinutes
          breakMinutes
          isSignOutMissing
          leaveMinutes {
            paid
            sick
            childSick
            holiday
            absent
          }
          periodTotal
          contractedDifference
          scheduleDifference
        }
      }
      next
    }
  }
}
Response
{
  "data": {
    "staffhourstotals": {
      "byStaff": StaffHoursTotalsResult
    }
  }
}

workTags

Response

Returns a WorkTagPublicAPIQueriesType!

Example

Query
query WorkTags {
  workTags {
    bySiteSetId {
      tagId
      name
      color
      code
    }
  }
}
Response
{
  "data": {
    "workTags": {
      "bySiteSetId": [WorkTagPublicAPIResultResultType]
    }
  }
}

workavailability

Response

Returns a WorkAvailabilityPublicQueries!

Example

Query
query Workavailability {
  workavailability {
    byEmployee {
      employeeId
      current {
        monday {
          from
          to
        }
        tuesday {
          from
          to
        }
        wednesday {
          from
          to
        }
        thursday {
          from
          to
        }
        friday {
          from
          to
        }
        saturday {
          from
          to
        }
        sunday {
          from
          to
        }
        validFrom
        validTo
      }
    }
    byEmployees {
      employeeId
      current {
        monday {
          from
          to
        }
        tuesday {
          from
          to
        }
        wednesday {
          from
          to
        }
        thursday {
          from
          to
        }
        friday {
          from
          to
        }
        saturday {
          from
          to
        }
        sunday {
          from
          to
        }
        validFrom
        validTo
      }
    }
    bySite {
      employeeId
      current {
        monday {
          from
          to
        }
        tuesday {
          from
          to
        }
        wednesday {
          from
          to
        }
        thursday {
          from
          to
        }
        friday {
          from
          to
        }
        saturday {
          from
          to
        }
        sunday {
          from
          to
        }
        validFrom
        validTo
      }
    }
    default {
      monday {
        from
        to
      }
      tuesday {
        from
        to
      }
      wednesday {
        from
        to
      }
      thursday {
        from
        to
      }
      friday {
        from
        to
      }
      saturday {
        from
        to
      }
      sunday {
        from
        to
      }
      validFrom
      validTo
    }
  }
}
Response
{
  "data": {
    "workavailability": {
      "byEmployee": WorkAvailabilityPublicResult,
      "byEmployees": [WorkAvailabilityPublicResult],
      "bySite": [WorkAvailabilityPublicResult],
      "default": WorkAvailabilityPublic
    }
  }
}

Mutations

bankhours

Response

Returns a BankHoursPublicMutations!

Example

Query
mutation Bankhours {
  bankhours {
    save {
      current {
        minutes
        validFrom
        employeeId
      }
    }
  }
}
Response
{"data": {"bankhours": {"save": BankHoursPublicResult}}}

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
            locked
            source
            target
            siteSetIds
            createdAt
          }
          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
            locked
            source
            target
            siteSetIds
            createdAt
          }
          targetId
        }
        roleInvitations {
          roleInvitationId
          roleTitle
          roleId
          verification {
            verificationMethod
          }
          siteTitle
          privacyPolicyLink
        }
        emergencyContact
        records {
          key
          value
        }
      }
    }
    delete
    moveGroup {
      childId
      groupId
      group {
        id
        title
        description
        institutionId
        staffRatio
        ordering
        profileImage {
          url
        }
      }
      date
      time
    }
    cancelGroupMove {
      childId
      groupId
      group {
        id
        title
        description
        institutionId
        staffRatio
        ordering
        profileImage {
          url
        }
      }
      date
      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
          locked
          source
          target
          siteSetIds
          createdAt
        }
        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
          locked
          source
          target
          siteSetIds
          createdAt
        }
        targetId
      }
      roleInvitations {
        roleInvitationId
        roleTitle
        roleId
        verification {
          verificationMethod
        }
        siteTitle
        privacyPolicyLink
      }
      emergencyContact
      records {
        key
        value
      }
    }
  }
}
Response
{
  "data": {
    "contacts": {
      "create": [Contact],
      "update": [Contact]
    }
  }
}

contractedhours

Response

Returns a ContractedHoursPublicMutations!

Example

Query
mutation Contractedhours {
  contractedhours {
    scheduleChange {
      current {
        hours
        minutes
        validFrom
        validTo
      }
      scheduled {
        hours
        minutes
        date
      }
    }
    deleteScheduledChange {
      current {
        hours
        minutes
        validFrom
        validTo
      }
      scheduled {
        hours
        minutes
        date
      }
    }
    saveCurrent {
      current {
        hours
        minutes
        validFrom
        validTo
      }
      scheduled {
        hours
        minutes
        date
      }
    }
  }
}
Response
{
  "data": {
    "contractedhours": {
      "scheduleChange": ContractedHoursPublicResult,
      "deleteScheduledChange": ContractedHoursPublicResult,
      "saveCurrent": ContractedHoursPublicResult
    }
  }
}

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
      }
      customEmployeeId
    }
    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
      }
      customEmployeeId
    }
    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
              locked
              source
              target
              siteSetIds
              createdAt
            }
            targetId
          }
          roleInvitations {
            roleInvitationId
            roleTitle
            roleId
            verification {
              verificationMethod
            }
            siteTitle
            privacyPolicyLink
          }
          emergencyContact
          records {
            key
            value
          }
        }
      }
      source
      bookingSource
      reason
      lostCategory
      lostReason
      actions {
        id
        inquiryId
        type
        lastUpdatedAt
        note
        subject
      }
      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
        externalType
      }
    }
    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
        externalType
      }
    }
    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
        assignedTo
        workTag {
          tagId
          name
          color
          code
        }
      }
    }
    shift {
      create {
        shift {
          shiftId
          date
          startTime
          endTime
          breakMinutes
          state
          assignedTo
          location
          workTag {
            tagId
            name
            color
            code
          }
          managerNote {
            note
            updatedBy
            updatedAt
          }
        }
      }
      update {
        shift {
          shiftId
          date
          startTime
          endTime
          breakMinutes
          state
          assignedTo
          location
          workTag {
            tagId
            name
            color
            code
          }
          managerNote {
            note
            updatedBy
            updatedAt
          }
        }
      }
      delete {
        shift {
          shiftId
          date
          startTime
          endTime
          breakMinutes
          state
          assignedTo
          location
          workTag {
            tagId
            name
            color
            code
          }
          managerNote {
            note
            updatedBy
            updatedAt
          }
        }
      }
    }
  }
}
Response
{
  "data": {
    "shiftplanner": {
      "publish": ShiftPlannerPublishResultPublicType,
      "shift": ShiftPublicMutations
    }
  }
}

workTags

Response

Returns a WorkTagPublicAPIMutationsType!

Example

Query
mutation WorkTags {
  workTags {
    create {
      tagId
      name
      color
      code
    }
    update {
      tagId
      name
      color
      code
    }
    delete {
      tagId
      name
      color
      code
    }
  }
}
Response
{
  "data": {
    "workTags": {
      "create": WorkTagPublicAPIResultResultType,
      "update": WorkTagPublicAPIResultResultType,
      "delete": WorkTagPublicAPIResultResultType
    }
  }
}

workavailability

Example

Query
mutation Workavailability {
  workavailability {
    save {
      employeeId
      current {
        monday {
          from
          to
        }
        tuesday {
          from
          to
        }
        wednesday {
          from
          to
        }
        thursday {
          from
          to
        }
        friday {
          from
          to
        }
        saturday {
          from
          to
        }
        sunday {
          from
          to
        }
        validFrom
        validTo
      }
    }
  }
}
Response
{
  "data": {
    "workavailability": {
      "save": WorkAvailabilityPublicResult
    }
  }
}

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": "abc123",
  "reference": "abc123"
}

Address

Fields
Field Name Description
street - String!
zip - String!
city - String!
state - String
country - String
Example
{
  "street": "Koebmagergade 19, 2TV",
  "zip": "1150",
  "city": "Copenhagen",
  "state": "Copenhagen",
  "country": "Denmark"
}

AddressInput

Fields
Input Field Description
street - String!
zip - String!
city - String!
state - String
country - String
Example
{
  "street": "Koebmagergade 19, 2TV",
  "zip": "1150",
  "city": "Copenhagen",
  "state": "Copenhagen",
  "country": "Denmark"
}

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

BankHoursPublic

Fields
Field Name Description
minutes - Int!
validFrom - ZonedDateTime!
employeeId - EmployeeId!
Example
{
  "minutes": 123,
  "validFrom": ZonedDateTime,
  "employeeId": "0c83793f-2ce6-458e-8d08-78d3910bdccb"
}

BankHoursPublicInput

Fields
Input Field Description
minutes - Int!
Example
{"minutes": 987}

BankHoursPublicMutations

Description

Bank hours public mutations

Fields
Field Name Description
save - BankHoursPublicResult! Save employee bank hours. Replaces current value if present.
Arguments
employeeId - EmployeeId!
bankHoursInput - BankHoursPublicInput!
Example
{"save": BankHoursPublicResult}

BankHoursPublicQueries

Description

Bank hours public queries

Fields
Field Name Description
byEmployee - BankHoursPublicResult! Returns current value for employee bank hours, if defined.
Arguments
employeeId - EmployeeId!
Example
{"byEmployee": BankHoursPublicResult}

BankHoursPublicResult

Fields
Field Name Description
current - BankHoursPublic
Example
{"current": BankHoursPublic}

BasicChildRecordKey

Values
Enum Value Description

MIGRATION_BACKGROUND

EXTRA_INFO

LANGUAGE

NATIONALITY

WEEKLY_HOURS

BIRTHPLACE

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": "xyz789",
  "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": "abc123",
  "address": Address,
  "email": "example@famly.co",
  "accountNumber": "xyz789",
  "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
}

BillPayerChildShareType

Description

Shares of a bill for a child

Fields
Field Name Description
billPayerId - BillPayerId!
childId - ChildId!
share - ChildShare
Example
{
  "billPayerId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
  "childId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
  "share": ChildShare
}

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": "xyz789",
  "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
billPayers - [BillPayerInput!]!
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
billPayerIds - [BillPayerId!]!
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:

  • One of the payments is recurring
  • One of the payments is a FamlyPay payment
  • One of the payments is connected to multiple invoices

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
fromBillPayerId - BillPayerId!
toBillPayerId - BillPayerId!
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
invoiceRecipients - [InvoiceRecipientInput!]!
deleteInvoiceRecipients - [InvoiceRecipientDeleteResult!]! Delete the given invoice recipients for the specified bill payers.
Arguments
invoiceRecipients - [InvoiceRecipientDeleteInput!]!
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
siteIds - [SiteId!]!
nextToken - BillPayerCursor
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": "abc123",
  "siteId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
  "tags": [ReferenceTag]
}

BillPayerSummary

Description

An entity who has paid, or will be paying, an invoice

Fields
Field Name Description
billPayerId - BillPayerId!
siteId - SiteId!
name - String!
email - String
accountNumber - String
sortCode - String
note - String
Example
{
  "billPayerId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
  "siteId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
  "name": "abc123",
  "email": "example@famly.co",
  "accountNumber": "xyz789",
  "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": "abc123",
  "phone": "xyz789",
  "address": Address,
  "email": "example@famly.co",
  "accountNumber": "abc123",
  "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": "abc123",
  "sortCode": "abc123",
  "note": "xyz789",
  "externalId": "abc123"
}

Boolean

Description

The Boolean scalar type represents true or false.

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:

  • BIRTHPLACE
  • LANGUAGE
  • MIGRATION_BACKGROUND
  • NATIONALITY
  • WEEKLY_HOURS
  • EXTRA_INFO
Arguments
sensitiveRecords - [Record!]!

Sensitive child info records.

Currently available are:

  • ALLERGY
  • DENTIST_ADDRESS_CITY
  • DENTIST_ADDRESS_COUNTRY
  • DENTIST_ADDRESS_POST_CODE
  • DENTIST_ADDRESS_STATE
  • DENTIST_ADDRESS_STREET
  • DENTIST_NAME
  • DENTIST_PHONE
  • DOCTOR_ADDRESS_CITY
  • DOCTOR_ADDRESS_COUNTRY
  • DOCTOR_ADDRESS_POST_CODE
  • DOCTOR_ADDRESS_STATE
  • DOCTOR_ADDRESS_STREET
  • DOCTOR_NAME
  • DOCTOR_PHONE
  • ETHNICITY
  • RELIGION
  • SPECIAL_DIETARY_CONSIDERATIONS
  • SPECIAL_NOTES
  • TOLERATES_PENICILLIN
  • VACCINES
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
SiteSetId - SiteSetId!

Will return child checkins for all sites in this set, including sub-sites if an area or organization is given

range - ClosedLocalDateRange!

Range to find checkins for, the date selection will look for records with the checkinTime within this range.

nextToken - CheckinCursor

When provided results are paged. Otherwise, full result will be returned

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": "xyz789",
  "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": "abc123",
  "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
actions - [InquiryAction!]! Actions
note - String! Note
Example
{
  "siteId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
  "createdAt": ZonedDateTime,
  "id": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
  "status": "WAITING_LIST",
  "childId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
  "child": Child,
  "source": "abc123",
  "bookingSource": "xyz789",
  "reason": "xyz789",
  "lostCategory": "abc123",
  "lostReason": "xyz789",
  "actions": [InquiryAction],
  "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
inquiries - [InquiryInput!]!

A list of child inquiries to be created

Example
{"create": [ChildInquiry]}

ChildInquiryQueries

Description

For querying inquiries for children

Fields
Field Name Description
listBySiteIds - [ChildInquiry!]! Get all inquiries for given sites
Arguments
siteIds - [SiteId!]!

Sites to return inquiries for

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": "xyz789",
  "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
siteSetIds - [SiteSetId!]!

When provided returns all child leaves from the listed siteSets. You can pass organizationIds, areaIds or siteIds here.

nextToken - ChildLeaveCursor

When provided results are paged. Otherwise, full result will be returned

range - ClosedLocalDateRange!

Range for finding leaves, the selection will look for records with the date within this range.

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 token is not empty, use this as an argument to fetch the next set of child leaves.

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

ChildShare

Description

The fraction of a child's bill for which a bill payer is responsible

Fields
Field Name Description
multiplier - Float! A number between 0.0 and 1.0
Example
{"multiplier": 123.45}

ChildShareInput

Description

Input for the fraction of a child's bill for which a bill payer is responsible

Fields
Input Field Description
multiplier - Float!

A number between 0.0 and 1.0

Example
{"multiplier": 123.45}

ChildSharesDeleteInput

Description

Input for deleting bill payer shares

Fields
Input Field Description
childId - ChildId!
billPayerId - BillPayerId!
Example
{
  "childId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
  "billPayerId": "0c83793f-2ce6-458e-8d08-78d3910bdccb"
}

ChildSharesUpdateInput

Description

Input for updating bill payer shares

Fields
Input Field Description
childId - ChildId!
billPayerId - BillPayerId!
share - ChildShareInput
Example
{
  "childId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
  "billPayerId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
  "share": ChildShareInput
}

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 token is not empty, use this as an argument to fetch the next set of children.

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
children - [ChildInput!]!

A children input list to be created

update - [Child!]! After updating children, returns list of them
Arguments
children - [ChildUpdate!]!

A children input list to be updated

delete - [ChildId!]!
Arguments
childIds - [ChildId!]
siteIds - [SiteId!]
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
childIds - [ChildId!]!
groupId - GroupId!
date - LocalDate

Defaults to today if not provided

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
childId - ChildId!
groupId - GroupId!
date - LocalDate!
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 timeRange argument.

Example:

  • Include all children that started before the to date and are either active or left after the from date: { from: "2021-11-01", to: "2021-12-30" }
  • Include all active children and children that left after the from date: { from: "2021-11-01" }

You can expand these time ranges so that you will get all past and future children, e.g. { from: "2000-01-01", to: "2100-01-01" }.

Arguments
siteIds - [SiteId!]!

When provided returns all active children from sites. Use the timeRange argument for more flexibility.

nextToken - ChildCursor

When provided results are paged. Otherwise, full result will be returned

listByChildIds - ChildrenListResult! A paginated list of children based on the provided Child IDs.
Arguments
childIds - [ChildId!]!

When provided returns all requested children.

nextToken - ChildCursor

When provided results are paged. Otherwise, full result will be returned

list - ChildrenListResult! A paginated list of children. Please use listBySiteIds or listByChildIds instead
Arguments
siteIds - [SiteId!]

When provided returns all active children from sites. Mutually exclusive with childIds.

childIds - [ChildId!]

When provided returns all requested children. Mutually exclusive with siteIds.

nextToken - ChildCursor

When provided results are paged. Otherwise, full result will be returned

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

ClosedLocalTimeRange

Fields
Input Field Description
from - LocalTime!
to - LocalTime!
Example
{
  "from": "08:45:59",
  "to": "08:45:59"
}

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:

  • TITLE
  • RELATION
  • PLACE_OF_WORK
  • OCCUPATION
  • EXTRA_INFO
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": true,
  "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": true
}

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 token is not empty, use this as an argument to fetch the next set of children contacts.

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
childIds - [ChildId!]!

Child ids associated to contacts

nextToken - ContactCursor

When provided results are paged. Otherwise, full result will be returned

Example
{"list": ContactListResult}

ContactRecordKey

Values
Enum Value Description

TITLE

OCCUPATION

RELATION

EXTRA_INFO

PLACE_OF_WORK

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
}

ContactUpdateEmail

Fields
Input Field Description
contactId - ContactId!
email - EmailAddress
Example
{
  "contactId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
  "email": "example@famly.co"
}

ContactUpdateEmergencyContact

Fields
Input Field Description
contactId - ContactId!
emergencyContact - Boolean
Example
{
  "contactId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
  "emergencyContact": true
}

ContactUpdateName

Fields
Input Field Description
contactId - ContactId!
name - NameInput!
Example
{
  "contactId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
  "name": NameInput
}

ContactUpdatePhone

Fields
Input Field Description
contactId - ContactId!
phone - [PhoneInput!]!
Example
{
  "contactId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
  "phone": [PhoneInput]
}

ContactUpdateRecord

Fields
Input Field Description
contactId - ContactId!
record - [RecordInput!]!
Example
{
  "contactId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
  "record": [RecordInput]
}

ContactUpdateRoleId

Fields
Input Field Description
contactId - ContactId!
roleId - RoleId
Example
{
  "contactId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
  "roleId": "0c83793f-2ce6-458e-8d08-78d3910bdccb"
}

ContactsMutation

Description

For creating and updating contacts

Fields
Field Name Description
create - [Contact!]! After creating contacts, returns list of them
Arguments
contacts - [ContactInput!]!

A contact input list to be created

update - [Contact!]! Update one or more contacts. You can use contacts to update a full contact, or one of the arguments, e.g. names, to update a single field
Arguments
contacts - [ContactUpdate!]

If provided, updates all fields of the provided contacts

forceAccountsSync - Boolean

Force updating name and address from related accounts, even when feature ENABLE_RESTRICTED_EDITING is enabled

names - [ContactUpdateName!]

Update just the name field

records - [ContactUpdateRecord!]

Update just the record field

roles - [ContactUpdateRoleId!]

Update just the roleId field

emails - [ContactUpdateEmail!]

Update just the email field

phones - [ContactUpdatePhone!]

Update just the phone field

emergencyContacts - [ContactUpdateEmergencyContact!]

Update just the emergencyContact field

Example
{
  "create": [Contact],
  "update": [Contact]
}

ContractedHoursPublic

Fields
Field Name Description
hours - Int!
minutes - Int!
validFrom - LocalDate!
validTo - LocalDate
Example
{
  "hours": 987,
  "minutes": 987,
  "validFrom": "2020-07-19",
  "validTo": "2020-07-19"
}

ContractedHoursPublicInput

Fields
Input Field Description
effectiveDate - LocalDate!
hours - Int!
minutes - Int!
Example
{
  "effectiveDate": "2020-07-19",
  "hours": 987,
  "minutes": 987
}

ContractedHoursPublicMutations

Description

Contracted hours public mutations

Fields
Field Name Description
scheduleChange - ContractedHoursPublicResult! Schedule a change to employee contracted hours. If employee has no contracted hours set, can be used to set new value, as long as it's not in the past. If employee has contracted hours set, can be used to set different value but only if change date is after today.
Arguments
employeeId - EmployeeId!
contractedHoursInput - ContractedHoursPublicInput!
deleteScheduledChange - ContractedHoursPublicResult! Deletes scheduled change for an employee (if any is present).
Arguments
employeeId - EmployeeId!
saveCurrent - ContractedHoursPublicResult! Save current value of employee contracted hours. If employee has no contracted hours set, set new value effective from today. If employee has contracted hours set, can be used to set different value, also effective from today. Scheduled changes are left unchanged. Can de used to delete current value by passing null as cantractedHoursSaveInput.
Arguments
employeeId - EmployeeId!
contractedHoursSaveInput - ContractedHoursSavePublicInput
Example
{
  "scheduleChange": ContractedHoursPublicResult,
  "deleteScheduledChange": ContractedHoursPublicResult,
  "saveCurrent": ContractedHoursPublicResult
}

ContractedHoursPublicQueries

Description

Contracted hours public queries

Fields
Field Name Description
byEmployee - ContractedHoursPublicResult! Contains current value for contracted hours as well as scheduled change to contracted hours. Any of these may or may not be defined.
Arguments
employeeId - EmployeeId!
Example
{"byEmployee": ContractedHoursPublicResult}

ContractedHoursPublicResult

Fields
Field Name Description
current - ContractedHoursPublic
scheduled - ContractedHoursScheduledChangePublic
Example
{
  "current": ContractedHoursPublic,
  "scheduled": ContractedHoursScheduledChangePublic
}

ContractedHoursSavePublicInput

Fields
Input Field Description
hours - Int!
minutes - Int!
Example
{"hours": 123, "minutes": 987}

ContractedHoursScheduledChangePublic

Fields
Field Name Description
hours - Int!
minutes - Int!
date - LocalDate!
Example
{
  "hours": 987,
  "minutes": 123,
  "date": "2020-07-19"
}

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": "xyz789"
}

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
customEmployeeId - String Custom ID for an employee, assigned by external system.
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,
  "customEmployeeId": "xyz789"
}

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
SiteSetId - SiteSetId!

Will return child checkins for all sites in this set, including sub-sites if an area or organization is given

range - ClosedLocalDateRange!

Range to find checkins for, the date selection will look for records with the checkinTime within this range.

nextToken - CheckinCursor

When provided results are paged. Otherwise, full result will be returned

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
workTag - WorkTagResultResultType
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,
  "workTag": WorkTagResultResultType
}

EmployeeId

Description

A string containing a 36-character UUID

Example
"0c83793f-2ce6-458e-8d08-78d3910bdccb"

EmployeeInput

Fields
Input Field Description
name - String!
institutionId - InstitutionId!
groupId - GroupId!
email - EmailAddress
title - String
birthDate - LocalDate
phoneNumber - String
address - AddressInput
firstDay - LocalDate!
lastDay - LocalDate
roleId - RoleId
customEmployeeId - String
Example
{
  "name": "abc123",
  "institutionId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
  "groupId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
  "email": "example@famly.co",
  "title": "xyz789",
  "birthDate": "2020-07-19",
  "phoneNumber": "xyz789",
  "address": AddressInput,
  "firstDay": "2020-07-19",
  "lastDay": "2020-07-19",
  "roleId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
  "customEmployeeId": "abc123"
}

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
minutes - Int
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": "abc123",
  "reason": "abc123",
  "startTime": "2022-10-07T01:08:03.420Z",
  "endTime": "2022-10-07T01:08:03.420Z",
  "hours": 987.65,
  "minutes": 123,
  "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
employeeLeaveId - EmployeeLeaveId!

The id of the employee leave to be deleted.

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
siteSetIds - [SiteSetId!]!

When provided returns all employee leaves from the listed siteSets. You can pass organizationIds, areaIds or siteIds here.

nextToken - EmployeeLeaveCursor

When provided results are paged. Otherwise, full result will be returned

range - ClosedLocalDateRange!

Range for finding leaves, the selection will look for records with the date within this range.

createdFrom - LocalDate

Optional starting date of leave creation.

createdTo - LocalDate

Optional end date of leave creation.

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 token is not empty, use this as an argument to fetch the next set of employee leaves.

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
employees - [EmployeeInput!]!
update - [Employee!]! Update one or more employees. You can use employees to update a full employee, or one of the arguments, e.g. roles, to update a single field
Arguments
employees - [EmployeeUpdate!]

If provided, updates all fields of the provided employees

names - [EmployeeUpdateName!]

Update just the name field

groups - [EmployeeUpdateGroupId!]

Update just the groupId field

emails - [EmployeeUpdateEmail!]

Update just the email field

titles - [EmployeeUpdateTitle!]

Update just the title field

birthDates - [EmployeeUpdateBirthDate!]

Update just the birthDate field

phones - [EmployeeUpdatePhone!]

Update just the phone field

addresses - [EmployeeUpdateAddress!]

Update just the address field

firstAndLastDays - [EmployeeUpdateRange!]

Update just the range field

roles - [EmployeeUpdateRoleId!]

Update just the roleId field

customEmployeeIds - [EmployeeUpdateCustomEmployeeId!]

Update just the customEmployeeId field

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
employeeIds - [EmployeeId!]!

limit: 10

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
siteIds - [SiteId!]
employeeIds - [EmployeeId!]

limit: 500

emails - [String!]

limit: 500

institutionIds - [InstitutionId!]

DEPRECATED: Please use siteIds

EmployeeIds - [EmployeeId!]

DEPRECATED: Please use employeeIds

includeFuture - Boolean

Include future employees. Defaults to false

includePast - Boolean

Include past employees. Defaults to false

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
customEmployeeId - String
Example
{
  "employeeId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
  "name": "xyz789",
  "groupId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
  "email": "example@famly.co",
  "title": "xyz789",
  "birthDate": "2020-07-19",
  "phoneNumber": "xyz789",
  "address": AddressInput,
  "firstDay": "2020-07-19",
  "lastDay": "2020-07-19",
  "roleId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
  "customEmployeeId": "xyz789"
}

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

EmployeeUpdateCustomEmployeeId

Fields
Input Field Description
employeeId - EmployeeId!
customEmployeeId - String
Example
{
  "employeeId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
  "customEmployeeId": "abc123"
}

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": 987,
  "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

XERO

Integration with Xero

XLEDGER

Integration with XLedger

QUICKBOOKS

Integration with QuickBooks

UNKNOWN

Integration with an unknown system

CUSTOM

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
filename - String

Optional filename to associate with the upload

getSignedUrls - [BatchFileUpload!]! Get a signed upload URL and HMAC for uploading files to Famly for multiple files in one batch
Arguments
filenames - [String!]!

List of filenames to associate with the upload

Example
{
  "getSignedUrl": FileUpload,
  "getSignedUrls": [BatchFileUpload]
}

FileUpload

Description

Data required to make an out-of-band file upload

Fields
Field Name Description
signedUploadUrl - URI! The target URL for a file upload PUT request
hmac - HMAC! HMAC value required for submitting an uploaded file for use
Example
{
  "signedUploadUrl": URI,
  "hmac": HMAC
}

FileUploadInput

Description

Input for submitting an uploaded file for use

Fields
Input Field Description
signedUploadUrl - URI!

The previously received file upload URL

hmac - HMAC!

The HMAC required to prove the file upload is legitimate

Example
{
  "signedUploadUrl": URI,
  "hmac": HMAC
}

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": "xyz789"}

ForeignIdReferenceInput

Description

Foreign ID with foreign system information

Fields
Input Field Description
foreignId - String!

Foreign ID

foreignSystem - ForeignSystem

Please use system instead

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

KITA_PLANER

UNKNOWN

Example
"KITA_PLANER"

Gender

Values
Enum Value Description

FEMALE

MALE

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": "xyz789",
  "description": "xyz789",
  "institutionId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
  "staffRatio": 123.45,
  "ordering": 123,
  "profileImage": ProfileImage
}

GroupId

Description

A string containing a 36-character UUID

Example
"0c83793f-2ce6-458e-8d08-78d3910bdccb"

GroupInput

Fields
Input Field Description
institutionId - InstitutionId!
title - String!
description - String
Example
{
  "institutionId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
  "title": "abc123",
  "description": "xyz789"
}

GroupMove

Fields
Field Name Description
childId - ChildId!
groupId - GroupId!
group - Group!
date - LocalDate!
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",
  "group": Group,
  "date": "2020-07-19",
  "time": "08:45:59"
}

GroupMutations

Description

For managing groups (rooms)

Fields
Field Name Description
create - [Group!]! Create one or more groups
Arguments
groups - [GroupInput!]!
update - [Group!]! Update one or more groups
Arguments
groups - [GroupUpdate!]!
Example
{
  "create": [Group],
  "update": [Group]
}

GroupQueries

Description

For querying groups

Fields
Field Name Description
list - [Group!]! List groups by either GroupId or InstitutionId
Arguments
institutionIds - [InstitutionId!]
groupIds - [GroupId!]
Example
{"list": [Group]}

GroupUpdate

Fields
Input Field Description
groupId - GroupId!
title - String!
description - String
Example
{
  "groupId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
  "title": "abc123",
  "description": "xyz789"
}

HMAC

Description

A HMAC used to secure a request

Example
HMAC

InquiryAction

Description

Represents a child inquiry action

Fields
Field Name Description
id - InquiryActionId! Inquiry action Id
inquiryId - InquiryId! Inquiry Id
type - InquiryActionType! Inquiry action type
lastUpdatedAt - ZonedDateTime! Last update time of this action
note - String! Note
subject - String! Subject
Example
{
  "id": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
  "inquiryId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
  "type": "OTHER",
  "lastUpdatedAt": ZonedDateTime,
  "note": "xyz789",
  "subject": "xyz789"
}

InquiryActionId

Description

A string containing a 36-character UUID

Example
"0c83793f-2ce6-458e-8d08-78d3910bdccb"

InquiryActionType

Values
Enum Value Description

OTHER

EMAIL

STATUS_UPDATE

PHONE

QUOTE_SENT

SHOWAROUND

TASK

Example
"OTHER"

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": "xyz789"
}

InstitutionId

Description

A string containing a 36 character UUID

Example
"0c83793f-2ce6-458e-8d08-78d3910bdccb"

InstitutionPosition

Fields
Field Name Description
latitude - Float!
longitude - Float!
Example
{"latitude": 123.45, "longitude": 987.65}

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": "xyz789",
  "roleInvitationId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
  "roleTitle": "xyz789",
  "roleId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
  "verification": RoleInvitationVerification,
  "siteTitle": "xyz789",
  "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": 987,
  "invoiceDate": "2020-07-19",
  "dueDate": "2020-07-19",
  "note": "xyz789",
  "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": "abc123",
  "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.

Fields
Input Field Description
childId - ChildId

The child associated with the invoice line

info - String!

A description of what the line is for

amount - BadMoney!

The amount the line is for

Example
{
  "childId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
  "info": "xyz789",
  "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
invoices - [InvoiceInput!]!

The invoice information to create

setPdf - SetPdfResult! Associate an uploaded PDF with the given invoice, replacing any existing PDF.
Arguments
invoiceReference - InvoiceReference!

A reference to the invoice to be updated

fileUpload - FileUploadInput!

A reference to the uploaded file

reportError - ErrorReportResponse! Report an error message for an invoice from an external party
Arguments
invoiceReference - InvoiceReference!

A reference to the invoice that had errors

occurredAt - ZonedDateTime

The time when the error occurred

message - String!

The error message

createCreditNote - CreateCreditNoteOutput! Create credit note for an invoice
Arguments
invoiceId - InvoiceId!

An id of the invoice to be updated

creditDate - LocalDate

The time when the credit occurred

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

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
siteIds - [SiteId!]!
nextToken - InvoiceCursor
createdDateRange - NonEmptyLocalDateRangeInput

Filter by creation date (inclusive)

invoiceDateRange - NonEmptyLocalDateRangeInput

Filter by invoice date (inclusive)

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": "xyz789",
  "siteId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
  "tags": [ReferenceTag]
}

LeaveBalancesMutations

Description

For modifying leave balances

Fields
Field Name Description
setEmployeeBalanceOverride - Float
Arguments
employeeId - EmployeeId!

ID of an employee for which leave balance is changed

leaveType - StaffLeaveType!

Leave type for which leave balance is changed

balance - Float

Balance value. If not set, balance will be cleared.

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
employeeId - EmployeeId!

ID of an employee for which leave balances are queried

balanceOverrideByEmployeeAndLeaveType - StaffLeaveBalance! Get single leave balance override for an employee.
Arguments
employeeId - EmployeeId!

ID of an employee for which leave balance is queried

leaveType - StaffLeaveType!

Leave type for which leave balance is queried

Example
{
  "balanceOverridesByEmployee": [StaffLeaveBalance],
  "balanceOverrideByEmployeeAndLeaveType": StaffLeaveBalance
}

LeaveMinutesPublicType

Fields
Field Name Description
paid - Int!
sick - Int!
childSick - Int!
holiday - Int!
absent - Int!
Example
{"paid": 987, "sick": 987, "childSick": 987, "holiday": 987, "absent": 123}

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
}

ListRolesResult

Description

A paginated list of roles

Fields
Field Name Description
next - RoleCursor
roles - [Role!]!
Example
{
  "next": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
  "roles": [Role]
}

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"

ManagerNoteType

Fields
Field Name Description
note - String! Manager note content
updatedBy - String Name of the user who last updated manager note
updatedAt - ZonedDateTime Time when manager note was last updated
Example
{
  "note": "xyz789",
  "updatedBy": "abc123",
  "updatedAt": ZonedDateTime
}

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
after - MealPlanCursor

Provide the cursor when querying paginated results

siteIds - [SiteId!]!
firstDay - LocalDate

Start date of the meal plans. Defaults to Monday of the current week (with the week starting on Monday)

lastDay - LocalDate

End date of the meal plans. Defaults to two weeks after the start date

first - Int

Results for a maximum number of 'first' site ID is returned before pagination (default and max.: 100)

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

Description

A person's name

Fields
Field Name Description
firstName - String!
middleName - String
lastName - String
fullName - String!
Example
{
  "firstName": "xyz789",
  "middleName": "xyz789",
  "lastName": "abc123",
  "fullName": "abc123"
}

NameInput

Description

A string representing name of 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

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": "abc123",
  "paymentDate": "2020-07-19",
  "billPayer": BillPayerSummary,
  "currency": "xyz789",
  "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.
externalType - String The type associated with the payment in the external system.
Example
{
  "id": "abc123",
  "system": "XERO",
  "name": "xyz789",
  "externalType": "abc123"
}

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 system is set to CUSTOM.

Example
{
  "id": "abc123",
  "system": "XERO",
  "name": "xyz789"
}

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 instead.

externalSystem - PaymentExternalSystemInput

The external system this payment relates to.

externalBillPayerReferences - [PaymentExternalSystemInput!]

The external system this bill payer 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": "xyz789",
  "externalSystem": PaymentExternalSystemInput,
  "externalBillPayerReferences": [
    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

GovernmentGrant

Voucher

BankTransfer

WriteOff

SEPA

Other

TaxFreeChildcare

CreditCard

ACH

DebitCard

DirectDebit

Cheque

Payroll

Cash

Adjustment

Example
"GovernmentGrant"

PaymentMutations

Description

For managing payments

Fields
Field Name Description
create - [Payment!]! Register new payments with the provided details.
Arguments
payments - [PaymentInput!]!
update - [Payment!]! Update existing payments with the provided details.
Arguments
delete - [PaymentDeleteResult!]! Delete payments.
Arguments
paymentIds - [PaymentId!]!
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
siteIds - [SiteId!]!
nextToken - PaymentCursor
createdDateRange - NonEmptyLocalDateRangeInput

Filter by creation date (inclusive)

paymentDateRange - NonEmptyLocalDateRangeInput

Filter by payment date (inclusive)

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": "abc123",
  "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

Description

A phone number that may or may not be valid

Fields
Field Name Description
value - String!
phoneType - PhoneType
formatted - String
Example
{
  "value": "abc123",
  "phoneType": "MOBILE",
  "formatted": "abc123"
}

PhoneType

Values
Enum Value Description

MOBILE

HOME

WORK

Example
"MOBILE"

ProfileImage

Description

A profile image

Fields
Field Name Description
url - String!
Arguments
resolution - Int

Defaults to 100. Use this to specify a resolution.

Example
{"url": "abc123"}

PublicMealType

Description

Meal type information

Fields
Field Name Description
title - String!
order - Int!
Example
{"title": "abc123", "order": 123}

Record

Fields
Field Name Description
key - String!
value - String!
Example
{
  "key": "xyz789",
  "value": "abc123"
}

RecordInput

Description

Input for creating a record

Fields
Input Field Description
key - String!
value - String!
Example
{
  "key": "abc123",
  "value": "abc123"
}

ReferenceTag

Description

Tag for identifying a specific site

Fields
Input Field Description
key - String!
value - String!
Example
{
  "key": "abc123",
  "value": "abc123"
}

RelationId

Description

A string containing a 36-character UUID

Example
"0c83793f-2ce6-458e-8d08-78d3910bdccb"

Role

Description

A role and its granted/locked permissions

Fields
Field Name Description
roleId - RoleId!
title - String!
locked - Boolean! Whether this role can be edited
source - RoleSource!
target - RoleTarget!
siteSetIds - [SiteSetId!]!
createdAt - ZonedDateTime!
Example
{
  "roleId": "0c83793f-2ce6-458e-8d08-78d3910bdccb",
  "title": "abc123",
  "locked": true,
  "source": "ORGANIZATION_PERSON",
  "target": "ORGANIZATION",
  "siteSetIds": [
    "0c83793f-2ce6-458e-8d08-78d3910bdccb"
  ],
  "createdAt": ZonedDateTime
}

RoleAssignee

Description

A login assigned to a specific role

Fields
Field Name