Results Nodes, Edges, Connections, Fields

GraphQL responses return lists of nodes which can contain properties as well as connections to other types of data.

A node is an individual data object, an edge represents the relationship between nodes, and a connection is a collection of edges and related pagination information. This pattern is a standard way to handle pagination for lists of data in GraphQL, especially when influenced by the Relay client framework.

Node: A single, individual resource. In a social network, a user is a node. A user's post, a photo, or a comment are also nodes. Each node is a distinct data object with its own properties.

Edge: The link that connects two nodes and describes their relationship. It can also contain metadata about that specific connection. For example, the relationship between an "User" node and their notes could be represented by a "Research" edge. This edge could hold contextual information, like the date the users became friends, which is a property of the relationship itself and not of either user individually.

Connection: A collection of related nodes and the edges that link them. When you query for a list of items, such as a user's list of friends, the GraphQL server returns a connection. The connection object typically includes: edges: An array of objects, where each object contains a node and a cursor.

Nodes & Connections

For example, this query returns the notes from a specific user by first querying for users with a matching email address and then using the research connection which limits that research to notes authored by the user.

{
  users(
    filter: {
      email: {
        equals: "[email protected]"
      }
    }
  ) {
    edges {
      node {
        research (first: 5) {
          edges {
            node {
              title
            }
          }
        }
      }
    }
  }
}

This returns:

{
  "data": {
    "users": {
      "edges": [
        {
          "node": {
            "research": {
              "edges": [
                {
                  "node": {
                    "title": "Info Request - Klein-Kiehn"
                  }
                },
                {
                  "node": {
                    "title": "Call with Klein-Kiehn"
                  }
                },
                {
                  "node": {
                    "title": "Klein-Kiehn: 2025-01-06 expectations"
                  }
                },
                {
                  "node": {
                    "title": "Follow up call"
                  }
                },
                {
                  "node": {
                    "title": "Marks-Kihn - Capital Call notice"
                  }
                }
              ]
            }
          }
        }
      ]
    }
  }
}

Bipsync Fields

Custom fields unique to your Bipsync configuration are also available through GraphQL under the fields type. Each field is available with it's value(s) under a unique name. If a field requested doesn't exist on a object it will be returned as null.

For example, the below request asks for the note type and entities field along with properties of each of those value objects can hold.

{
  research(
    first: 2
    sort: {
      by: UPDATED_AT
      direction: DESCENDING
    }
    filter: {
      hasFields: true
    }
  ) {
    edges {
      node {
        id
        title
        fields {
          noteType {
            name
          }
          entities {
            id
            name
            classification {
              name
            }
            updatedAt
          }
        }
      }
    }
  }
}
{
  "data": {
    "research": {
      "edges": [
        {
          "node": {
            "id": "68d68889a1490d20ba04bf5b",
            "title": "Introduction call",
            "fields": {
              "noteType": {
                "name": "Call"
              },
              "entities": [
                {
                  "id": "68b993f985d14160d4030307",
                  "name": "Abernathy and Sons",
                  "classification": {
                    "name": "Companies"
                  },
                  "updatedAt": "2025-09-04T14:28:26+01:00"
                },
                {
                  "id": "68b993fa85d14160d403034b",
                  "name": "Ireland",
                  "classification": {
                    "name": "Geographies"
                  },
                  "updatedAt": "2025-09-04T14:28:26+01:00"
                }
              ]
            }
          }
        },
        {
          "node": {
            "id": "68b9940c85d14160d4030d45",
            "title": "Wilkinson-Towne - Capital Call notice",
            "fields": {
              "noteType": null,
              "entities": [
                {
                  "id": "68b993fa85d14160d4030325",
                  "name": "Heidenreich",
                  "classification": {
                    "name": "Industries"
                  },
                  "updatedAt": "2025-09-04T14:28:26+01:00"
                }
              ]
            }
          }
        }
      ]
    }
  }
}