A district table as CRM records
What Bellwork's CRM sync sends to Salesforce or Freshsales, for a CRM that pulls: per row, the district as an account (its match key, NCES ID and the table's answers as fields) and its people. `fields` names every field a record can carry. Each record's `hash` changes only when the record does, so a scheduled job can skip unchanged rows. Rows come in the table's order. Only district tables. See the Your own CRM guide.
What Bellwork's CRM sync sends to Salesforce or Freshsales, for a CRM that pulls: per row, the district as an account (its match key, NCES ID and the table's answers as fields) and its people. fields names every field a record can carry. Each record's hash changes only when the record does, so a scheduled job can skip unchanged rows. Rows come in the table's order. Only district tables. See the Your own CRM guide.
API key (sk_live_... prefix). Generate keys in the UI under Settings > API Keys, then send it as Authorization: Bearer sk_live_...
In: header
Path Parameters
uuidQuery Parameters
Records per page
25value <= 100Pagination offset
0Response Body
application/json
application/json
curl -X GET "https://loading/api/v1/tables/497f6eca-6276-4993-bfeb-53cbbbba6f08/records"{
"table": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string"
},
"fields": [
{
"key": "string",
"label": "string",
"kind": "number",
"source_id": "string"
}
],
"data": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"account": {
"name": "string",
"nces_id": "string",
"domain": "string",
"match": {
"by": "domain",
"domain": "string"
},
"fields": {
"property1": null,
"property2": null
}
},
"people": [
{
"contact_id": "f245e2a3-e141-4d41-912c-b1c1f5bd5598",
"name": "string",
"email": "string",
"title": "string",
"phone": "string",
"linkedin_url": "string",
"fields": [
"string"
]
}
],
"warnings": [
"string"
],
"error": "string",
"hash": "string"
}
],
"pagination": {
"total": -9007199254740991,
"limit": -9007199254740991,
"offset": -9007199254740991,
"has_more": true
}
}{
"error": "string",
"message": "string",
"statusCode": -9007199254740991
}List your tables GET
Every table in your organization's projects, open ones by default. Use a table's `id` with the table endpoints. Tables are shared across the organization.
Search the leadership transitions feed GET
Enterprise catalog-wide feed over deduped K-12 leadership transition events (`leadership_transitions`) -- one row per person moving into or out of one role at one district, tracked through its lifecycle (rumored → search → finalist → confirmed → effective → departed). Filter by role class, state, lifecycle stage, transition type, buying intent, announced-date window, and a person/district keyword. Defaults exclude historical-reference mentions and district-unresolved events. Gated by the `leadership_transitions` module entitlement; otherwise responds 403 entitlement_required.