API Docs

Employees API

Employees are account-scoped people who submit source stories and receive nudges.

Endpoints

  • GET /api/v1/employees
  • POST /api/v1/employees
  • GET /api/v1/employees/:id
  • PATCH /api/v1/employees/:id
  • DELETE /api/v1/employees/:id

Filtering, Sorting, Include

  • Filters: id, name, email
  • Sort fields: id, name, email, created_at, updated_at
  • Include: submissions, nudges

GET /api/v1/employees

curl -X GET "https://cases.shipmentbot.com/api/v1/employees?filter[email]=jamie.writer@example.com&sort=name&include=submissions&page[number]=1&page[size]=10" \
  -H "Accept: application/json" \
  -H "X-API-Key: csb_live_your_token_here"
{
  "data": [
    {
      "id": "4",
      "type": "employees",
      "attributes": {
        "name": "Jamie Writer",
        "email": "jamie.writer@example.com",
        "created_at": "2026-03-01T10:20:00.000Z",
        "updated_at": "2026-03-01T10:20:00.000Z"
      },
      "relationships": {
        "submissions": {
          "links": {
            "self": "https://cases.shipmentbot.com/api/v1/employees/4/relationships/submissions",
            "related": "https://cases.shipmentbot.com/api/v1/submissions?filter%5Bemployee_id%5D=4"
          },
          "data": [{ "id": "15", "type": "submissions" }]
        },
        "nudges": {
          "links": {
            "self": "https://cases.shipmentbot.com/api/v1/employees/4/relationships/nudges",
            "related": "https://cases.shipmentbot.com/api/v1/nudges?filter%5Bemployee_id%5D=4"
          },
          "data": [{ "id": "21", "type": "nudges" }]
        }
      },
      "links": {
        "self": "https://cases.shipmentbot.com/api/v1/employees/4"
      }
    }
  ],
  "included": [
    {
      "id": "15",
      "type": "submissions",
      "attributes": {
        "status": "submitted",
        "situation": "A customer needed faster onboarding.",
        "problem": "No repeatable implementation playbook.",
        "implication": "CSM hours were consumed by custom support.",
        "solution": "Created a templated kickoff workflow.",
        "raw_content": null,
        "reviewed_at": null,
        "published_at": null,
        "created_at": "2026-03-03T15:00:00.000Z",
        "updated_at": "2026-03-03T15:00:00.000Z"
      },
      "relationships": {
        "employee": {
          "links": {
            "self": "https://cases.shipmentbot.com/api/v1/submissions/15/relationships/employee",
            "related": "https://cases.shipmentbot.com/api/v1/employees/4"
          },
          "data": { "id": "4", "type": "employees" }
        },
        "campaign_period": {
          "links": {
            "self": "https://cases.shipmentbot.com/api/v1/submissions/15/relationships/campaign_period",
            "related": "https://cases.shipmentbot.com/api/v1/campaign_periods/11"
          },
          "data": { "id": "11", "type": "campaign_periods" }
        },
        "content_pieces": {
          "links": {
            "self": "https://cases.shipmentbot.com/api/v1/submissions/15/relationships/content_pieces",
            "related": "https://cases.shipmentbot.com/api/v1/submissions/15/content_pieces"
          },
          "data": []
        }
      },
      "links": {
        "self": "https://cases.shipmentbot.com/api/v1/submissions/15"
      }
    }
  ],
  "links": {
    "self": "https://cases.shipmentbot.com/api/v1/employees?filter%5Bemail%5D=jamie.writer%40example.com&sort=name&include=submissions&page%5Bnumber%5D=1&page%5Bsize%5D=10",
    "first": "https://cases.shipmentbot.com/api/v1/employees?filter%5Bemail%5D=jamie.writer%40example.com&sort=name&include=submissions&page%5Bnumber%5D=1&page%5Bsize%5D=10",
    "last": "https://cases.shipmentbot.com/api/v1/employees?filter%5Bemail%5D=jamie.writer%40example.com&sort=name&include=submissions&page%5Bnumber%5D=1&page%5Bsize%5D=10",
    "next": null,
    "prev": null
  },
  "meta": {
    "page": {
      "number": 1,
      "size": 10,
      "total_records": 1,
      "total_pages": 1
    }
  }
}

GET /api/v1/employees/:id

curl -X GET "https://cases.shipmentbot.com/api/v1/employees/4?include=nudges" \
  -H "Accept: application/json" \
  -H "X-API-Key: csb_live_your_token_here"
{
  "data": {
    "id": "4",
    "type": "employees",
    "attributes": {
      "name": "Jamie Writer",
      "email": "jamie.writer@example.com",
      "created_at": "2026-03-01T10:20:00.000Z",
      "updated_at": "2026-03-01T10:20:00.000Z"
    },
    "relationships": {
      "submissions": {
        "links": {
          "self": "https://cases.shipmentbot.com/api/v1/employees/4/relationships/submissions",
          "related": "https://cases.shipmentbot.com/api/v1/submissions?filter%5Bemployee_id%5D=4"
        },
        "data": [{ "id": "15", "type": "submissions" }]
      },
      "nudges": {
        "links": {
          "self": "https://cases.shipmentbot.com/api/v1/employees/4/relationships/nudges",
          "related": "https://cases.shipmentbot.com/api/v1/nudges?filter%5Bemployee_id%5D=4"
        },
        "data": [{ "id": "21", "type": "nudges" }]
      }
    },
    "links": {
      "self": "https://cases.shipmentbot.com/api/v1/employees/4"
    }
  },
  "included": [],
  "links": {
    "self": "https://cases.shipmentbot.com/api/v1/employees/4?include=nudges"
  },
  "meta": {}
}

POST /api/v1/employees

curl -X POST "https://cases.shipmentbot.com/api/v1/employees" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: csb_live_your_token_here" \
  -d '{
    "data": {
      "type": "employees",
      "attributes": {
        "name": "Morgan Patel",
        "email": "morgan.patel@example.com"
      }
    }
  }'
{
  "data": {
    "id": "9",
    "type": "employees",
    "attributes": {
      "name": "Morgan Patel",
      "email": "morgan.patel@example.com",
      "created_at": "2026-03-05T18:31:01.000Z",
      "updated_at": "2026-03-05T18:31:01.000Z"
    },
    "relationships": {
      "submissions": {
        "links": {
          "self": "https://cases.shipmentbot.com/api/v1/employees/9/relationships/submissions",
          "related": "https://cases.shipmentbot.com/api/v1/submissions?filter%5Bemployee_id%5D=9"
        },
        "data": []
      },
      "nudges": {
        "links": {
          "self": "https://cases.shipmentbot.com/api/v1/employees/9/relationships/nudges",
          "related": "https://cases.shipmentbot.com/api/v1/nudges?filter%5Bemployee_id%5D=9"
        },
        "data": []
      }
    },
    "links": {
      "self": "https://cases.shipmentbot.com/api/v1/employees/9"
    }
  },
  "included": [],
  "links": {
    "self": "https://cases.shipmentbot.com/api/v1/employees/9"
  },
  "meta": {}
}

PATCH /api/v1/employees/:id

curl -X PATCH "https://cases.shipmentbot.com/api/v1/employees/9" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: csb_live_your_token_here" \
  -d '{
    "data": {
      "type": "employees",
      "id": "9",
      "attributes": {
        "name": "Morgan A. Patel",
        "email": "morgan.a.patel@example.com"
      }
    }
  }'
{
  "data": {
    "id": "9",
    "type": "employees",
    "attributes": {
      "name": "Morgan A. Patel",
      "email": "morgan.a.patel@example.com",
      "created_at": "2026-03-05T18:31:01.000Z",
      "updated_at": "2026-03-05T18:32:10.000Z"
    },
    "relationships": {
      "submissions": {
        "links": {
          "self": "https://cases.shipmentbot.com/api/v1/employees/9/relationships/submissions",
          "related": "https://cases.shipmentbot.com/api/v1/submissions?filter%5Bemployee_id%5D=9"
        },
        "data": []
      },
      "nudges": {
        "links": {
          "self": "https://cases.shipmentbot.com/api/v1/employees/9/relationships/nudges",
          "related": "https://cases.shipmentbot.com/api/v1/nudges?filter%5Bemployee_id%5D=9"
        },
        "data": []
      }
    },
    "links": {
      "self": "https://cases.shipmentbot.com/api/v1/employees/9"
    }
  },
  "included": [],
  "links": {
    "self": "https://cases.shipmentbot.com/api/v1/employees/9"
  },
  "meta": {}
}

DELETE /api/v1/employees/:id

curl -X DELETE "https://cases.shipmentbot.com/api/v1/employees/9" \
  -H "X-API-Key: csb_live_your_token_here"

Successful response: 204 No Content.

Error Examples

404 Employee Not Found

{
  "data": null,
  "included": [],
  "links": {
    "self": "https://cases.shipmentbot.com/api/v1/employees/999999"
  },
  "meta": {},
  "errors": [
    {
      "status": "404",
      "title": "Not Found",
      "detail": "Employee not found"
    }
  ]
}

422 Validation Error (duplicate email in account)

{
  "data": null,
  "included": [],
  "links": {
    "self": "https://cases.shipmentbot.com/api/v1/employees"
  },
  "meta": {},
  "errors": [
    {
      "status": "422",
      "title": "Validation Error",
      "detail": "Email has already been taken",
      "source": {
        "pointer": "/data/attributes/email"
      }
    }
  ]
}