Vraag en filter records (todo's) in Blue met krachtige zoek- en paginatie-opties.


Lijst Records

De todo's-query stelt je in staat om records uit Blue op te halen met uitgebreide filter-, sorteervarianten en paginatie-opties. Je kunt records opvragen over bedrijven, projecten of filteren op specifieke criteria zoals toegewezen gebruikers, tags en data.

Basisvoorbeeld

Lijst alle records in een bedrijf met minimale parameters:

query ListRecords {
  todoQueries {
    todos(
      filter: {
        companyIds: ["company_123"]
      }
    ) {
      items {
        id
        title
        done
        duedAt
      }
      pageInfo {
        totalItems
        hasNextPage
      }
    }
  }
}

Geavanceerd Voorbeeld

Vraag records op met uitgebreide filter-, sorteervarianten en veldselectie:

query ListRecordsAdvanced {
  todoQueries {
    todos(
      filter: {
        companyIds: ["company_123"]
        projectIds: ["project_456", "project_789"]
        assigneeIds: ["user_123"]
        tagIds: ["tag_priority", "tag_urgent"]
        showCompleted: false
        dueStart: "2025-01-01T00:00:00Z"
        dueEnd: "2025-12-31T23:59:59Z"
        search: "product launch"
        excludeArchivedProjects: true
        fields: [
          {
            type: "CUSTOM_FIELD"
            customFieldId: "cf_status_123"
            customFieldType: "SELECT_SINGLE"
            values: ["In Progress", "Review"]
            op: "IN"
          }
        ]
        op: "AND"
      }
      sort: [duedAt_ASC, position_ASC]
      limit: 50
      skip: 0
    ) {
      items {
        id
        uid
        position
        title
        text
        html
        startedAt
        duedAt
        timezone
        color
        cover
        done
        archived
        createdAt
        updatedAt
        commentCount
        checklistCount
        checklistCompletedCount
        isRepeating
        todoList {
          id
          title
        }
        users {
          id
          name
          email
        }
        tags {
          id
          title
          color
        }
        customFields {
          id
          title
          type
          value
        }
        createdBy {
          id
          name
        }
      }
      pageInfo {
        totalPages
        totalItems
        page
        perPage
        hasNextPage
        hasPreviousPage
      }
    }
  }
}

Invoervariabelen

TodosFilter

Parameter Type Vereist Beschrijving
companyIds [String!]! ✅ Ja Bedrijfs-ID's of slugs om op te vragen
projectIds [String!] Nee Filter op specifieke project-ID's of slugs
todoIds [String!] Nee Haal specifieke todo's op aan de hand van hun ID's
assigneeIds [String!] Nee Filter op toegewezen gebruikers-ID's
tagIds [String!] Nee Filter op tag-ID's
tagColors [String!] Nee Filter op tagkleuren (hex-formaat)
tagTitles [String!] Nee Filter op tagtitels
todoListIds [String!] Nee Filter op todo-lijst-ID's
todoListTitles [String!] Nee Filter op todo-lijsttitels
done Boolean Nee Filter op voltooiingsstatus (verouderd, gebruik showCompleted)
showCompleted Boolean Nee Toon/verberg voltooide todo's (standaard: waar)
startedAt DateTime Nee Filter op startdatum
duedAt DateTime Nee Filter op exacte vervaldatum
dueStart DateTime Nee Vervaldatum bereik start (inclusief)
dueEnd DateTime Nee Vervaldatum bereik einde (inclusief)
search String Nee Zoek in titel en tekstinhoud
q String Nee Alternatieve zoekparameter (zelfde als zoekopdracht)
excludeArchivedProjects Boolean Nee Sluit todo's uit van gearchiveerde projecten
coordinates JSON Nee Geo-spatiale filter voor kaartweergave (polygon coördinaten)
fields JSON Nee Aangepaste veldfilters (zie geavanceerde filtering)
op FilterLogicalOperator Nee Logische operator voor veldfilters (EN/OF)

Queryparameters

Parameter Type Vereist Beschrijving
filter TodosFilter! ✅ Ja Filtercriteria voor de query
sort [TodosSort!] Nee Sorteervolgorde (standaard: lege array)
limit Int Nee Aantal items per pagina (standaard: 20, max: 500)
skip Int Nee Aantal items om over te slaan voor paginatie (standaard: 0)

TodosSort Waarden

Waarde Beschrijving
assignees_ASC Sorteer op toegewezen gebruikersnamen oplopend
assignees_DESC Sorteer op toegewezen gebruikersnamen aflopend
createdAt_ASC Sorteer op aanmaakdatum oplopend (oudste eerst)
createdAt_DESC Sorteer op aanmaakdatum aflopend (nieuwste eerst)
createdBy_ASC Sorteer op naam van de maker oplopend
createdBy_DESC Sorteer op naam van de maker aflopend
duedAt_ASC Sorteer op vervaldatum oplopend (eerste eerst)
duedAt_DESC Sorteer op vervaldatum aflopend (laatste eerst)
position_ASC Sorteer op positie oplopend (standaard lijstvolgorde)
position_DESC Sorteer op positie aflopend
startedAt_ASC Sorteer op startdatum oplopend
startedAt_DESC Sorteer op startdatum aflopend
title_ASC Sorteer op titel alfabetisch oplopend
title_DESC Sorteer op titel alfabetisch aflopend
todoListPosition_ASC Sorteer op positie van todo-lijst oplopend
todoListPosition_DESC Sorteer op positie van todo-lijst aflopend
todoListTitle_ASC Sorteer op titel van todo-lijst oplopend
todoListTitle_DESC Sorteer op titel van todo-lijst aflopend
todoTags_ASC Sorteer op tags oplopend
todoTags_DESC Sorteer op tags aflopend

FilterLogicalOperator Waarden

Waarde Beschrijving
AND Alle voorwaarden moeten overeenkomen
OR Elke voorwaarde moet overeenkomen

Aangepaste Veldfiltering

De fields parameter ondersteunt geavanceerde filtering op basis van aangepaste velden:

{
  "fields": [
    {
      "type": "CUSTOM_FIELD",
      "customFieldId": "cf_123",
      "customFieldType": "SELECT_SINGLE",
      "values": ["Option1", "Option2"],
      "op": "IN"
    }
  ]
}

Structuur van Aangepaste Veldfilter

Veld Type Beschrijving
type String Moet "CUSTOM_FIELD" zijn
customFieldId String ID van het aangepaste veld
customFieldType String Type van het aangepaste veld
values [String!] Waarden om op te filteren
op String Vergelijkingsoperator (IN, NOT_IN, EQ, enz.)

Ondersteunde Aangepaste Veldtypes

  • Tekstvelden: TEXT_SINGLE, TEXT_MULTI, URL, EMAIL, PHONE, UNIQUE_ID
  • Numerieke velden: CURRENCY, NUMBER, FORMULA
  • Selectievelden: SELECT_SINGLE, SELECT_MULTI, CHECKBOX, COUNTRY
  • Referentievelden: REFERENCE, LOOKUP
  • Datumvelden: DATE

Antwoordvelden

TodosResult

Veld Type Beschrijving
items [Todo!]! Array van todo-records
pageInfo PageInfo! Paginatie metadata

PageInfo

Veld Type Beschrijving
totalPages Int Totaal aantal beschikbare pagina's
totalItems Int Totaal aantal items over alle pagina's
page Int Huidig paginanummer (berekend vanuit overslaan/beperking)
perPage Int Aantal items per pagina
hasNextPage Boolean! Of er een volgende pagina is
hasPreviousPage Boolean! Of er een vorige pagina is

Todo Velden

Veld Type Beschrijving
id ID! Unieke identificatie
uid String! Gebruiksvriendelijke unieke identificatie
position Float! Positie in de lijst
title String! Todo-titel
text String! Gewone tekstinhoud
html String! HTML-geformatteerde inhoud
startedAt DateTime Startdatum/tijd
duedAt DateTime Vervaldatum/tijd
timezone String Tijdzone voor data
color String Visuele kleurindicator
cover String URL van de omslagafbeelding
done Boolean! Voltooiingsstatus
archived Boolean! Archiveringsstatus
createdAt DateTime! Aanmaak-timestamp
updatedAt DateTime! Laatste update-timestamp
commentCount Int! Aantal opmerkingen
checklistCount Int! Totaal aantal checklistitems
checklistCompletedCount Int! Voltooide checklistitems
isRepeating Boolean! Of todo terugkerend is
isRead Boolean Leesstatus voor huidige gebruiker
isSeen Boolean Gezien status voor huidige gebruiker
todoList TodoList! Ouder todo-lijst
users [User!]! Toegewezen gebruikers
tags [Tag!]! Geassocieerde tags
checklists [Checklist!]! Geassocieerde checklists
createdBy User Gebruiker die de todo heeft aangemaakt
customFields [CustomField!]! Waarden van aangepaste velden
dependOn [Todo!] Blokkerende todo's (afhankelijkheden)
dependBy [Todo!] Afhankelijke todo's (geblokkeerd door deze)
timeTracking TimeTracking Tijdregistratiegegevens

Vereiste Machtigingen

Gebruikers moeten de juiste toegang hebben om records op te vragen:

Toegangstype Vereisten
Company Access User must be a member of the company
Project Access User must have access to specific projects (if filtering by project)
Todo Visibility Depends on user's role and permissions:
- VIEW_ONLY Can view all accessible todos
- COMMENT_ONLY Can view all accessible todos
- CLIENT May be restricted to assigned todos only
- MEMBER Can view all project todos
- ADMIN Can view all project todos
- OWNER Can view all company todos

Speciale Beperkingen:

  • Gebruikers met showOnlyAssignedTodos machtiging kunnen alleen todo's zien die aan hen zijn toegewezen
  • Verborgen todo-lijsten (op basis van rolconfiguratie) worden automatisch uitgesloten
  • Tag-gebaseerde machtigingen kunnen de resultaten verder filteren

Foutreacties

Veelvoorkomende Fouten

De query behandelt fouten soepel en retourneert lege resultaten voor:

  • Ongeldige bedrijfs-ID's
  • Onbereikbare projecten
  • Toegangsweigering scenario's

Voor ernstige fouten kunnen GraphQL-fouten worden geretourneerd:

{
  "errors": [{
    "message": "Query timeout exceeded",
    "extensions": {
      "code": "QUERY_TIMEOUT"
    }
  }]
}

Belangrijke Notities

Prestatie

  • Standaardlimiet: 20 items per pagina (automatisch toegepast als niet gespecificeerd)
  • Maximale limiet: 500 items per verzoek (automatisch begrensd)
  • Optimalisatie: Queries gebruiken geoptimaliseerde joins met STRAIGHT_JOIN voor de beste prestaties
  • Indexering: Veelvoorkomende filtervelden zijn geïndexeerd voor snelle queries
  • Aangepaste velden: Uitgebreide ondersteuning voor filtering van aangepaste velden met minimale prestatie-impact
  • Geografische queries: Ondersteunt polygon-gebaseerde coördinatenfiltering voor kaartweergaven

Datumfiltering

  • Datumbereiken zijn inclusief
  • Ondersteunt overlappende datumbereiken (todo's die binnen het bereik beginnen of eindigen)
  • Null-datums worden soepel behandeld (todo's zonder vervaldatums zullen niet overeenkomen met datumfilters)
  • Alle datums moeten in ISO 8601-formaat zijn

Zoekgedrag

  • Zoekopdrachten zijn niet hoofdlettergevoelig
  • Zoekt in zowel titel als tekstinhoud
  • Deeltijdwoordovereenkomsten worden ondersteund
  • Speciale tekens worden op de juiste manier behandeld

Paginatiestrategie

  • Gebruik skip en limit voor offset-gebaseerde paginatie
  • Bereken de huidige pagina: page = Math.floor(skip / limit) + 1
  • Voor grote datasets, overweeg om filters te gebruiken om de resultaatgrootte te verminderen
  • Controleer altijd hasNextPage voordat je overslaan verhoogt

Gerelateerde Eindpunten

  • Record Aanmaken: Gebruik de createTodo-mutatie om nieuwe records aan te maken
  • Record Bijwerken: Gebruik de updateTodo-mutatie om records te wijzigen
  • Record Verwijderen: Gebruik de deleteTodo-mutatie om records te verwijderen
  • Lijst Aangepaste Velden: Vraag beschikbare aangepaste velden op voor filtering
  • Lijst Projecten: Vraag beschikbare projecten op voor filtering

AI Assistent

Antwoorden worden gegenereerd met behulp van AI en kunnen fouten bevatten.

Hoe kan ik u helpen?

Vraag me alles over Blue of deze documentatie.

Voer in om te verzenden • Shift+Enter voor nieuwe regel • ⌘I om te openen