Skip to main content

Supported Event Types

All webhook payloads follow the CloudEvents 1.0 specification. Each event has a type (e.g. ai.techwolf.employee.skill_profile.updated.v1) and a data object with tenant and resource identifiers. You only need to support the event types you consume; the healthcheck event is required for all consumers.

Event type reference

Events are grouped by entity. Follow the links to the full specification and example payload for each type. Employee Job Course Taxonomy (Skills) Healthcheck (required for all consumers)

Event specifications

Below are the full specifications for each event type, grouped by entity: when it is emitted, expected frequency, suggested consumer action, and payload format. The expected frequency is expressed per affected entity (e.g. per Employee, per Job) and this is not the total number of webhooks per day. Note that this is only a high-level indication; actual frequency is dependent on the activity levels in the SkillEngine API or any linked system such as the TechWolf Skill Assistant, the TechWolf Console, external platforms with integrations, etc. TechWolf may add new fields to existing webhook versions (e.g. extra fields in the data object). Your endpoint should tolerate unknown fields and not break when new ones are sent.

Employee Skill Profile Updated

DetailSpecification
Emitted whenSkills are added or removed; Skill attributes are updated (e.g. proficiency, validation state).
Expected frequencyDaily (per Employee)
Suggested actionRetrieve the Employee Skill Profile from the SkillEngine API (GET /employees/{external_id}/skill_profile) and propagate changes.
Event type: ai.techwolf.employee.skill_profile.updated.v1Event data
FieldDescription
tenant_nameIdentifies the tenant.
external_idEmployee’s external ID; use in the path when calling the API.
{
  "specversion": "1.0",
  "type": "ai.techwolf.employee.skill_profile.updated.v1",
  "source": "https://{tenant}.{region}.techwolf.ai/employees/{employee_external_id}/skill_profile",
  "id": "{event_uuid}",
  "time": "2024-01-15T10:30:00Z",
  "data": {
    "tenant_name": "{tenant}",
    "external_id": "{employee_external_id}"
  }
}

Job Skill Profile Updated

DetailSpecification
Emitted whenJob skills are added or removed; Skill attributes are updated (e.g. proficiency, criticality).
Expected frequencyWeekly–monthly (per Job)
Suggested actionRetrieve the Job Skill Profile from the SkillEngine API (GET /job_architecture/jobs/{job_external_id}/skill_profile) and propagate changes.
Event type: ai.techwolf.job_architecture.job.skill_profile.updated.v1Event data
FieldDescription
tenant_nameIdentifies the tenant.
external_idJob’s external ID; use in the path when calling the API.
{
  "specversion": "1.0",
  "type": "ai.techwolf.job_architecture.job.skill_profile.updated.v1",
  "source": "https://{tenant}.{region}.techwolf.ai/job_architecture/jobs/{job_external_id}/skill_profile",
  "id": "{event_uuid}",
  "time": "2024-01-15T10:30:00Z",
  "data": {
    "tenant_name": "{tenant}",
    "external_id": "{job_external_id}"
  }
}

Course Skill Profile Updated

DetailSpecification
Emitted whenCourse skills are added or removed.
Expected frequencyMonthly (per Course)
Suggested actionRetrieve the Course Skill Profile from the SkillEngine API (GET /courses/{external_id}/skill_profile) and propagate changes.
Event type: ai.techwolf.course.skill_profile.updated.v1Event data
FieldDescription
tenant_nameIdentifies the tenant.
external_idCourse’s external ID; use in the path when calling the API.
{
  "specversion": "1.0",
  "type": "ai.techwolf.course.skill_profile.updated.v1",
  "source": "https://{tenant}.{region}.techwolf.ai/courses/{course_external_id}/skill_profile",
  "id": "{event_uuid}",
  "time": "2024-01-15T10:30:00Z",
  "data": {
    "tenant_name": "{tenant}",
    "external_id": "{course_external_id}"
  }
}

Skill Created

DetailSpecification
Emitted whenNew Skills are added to the TechWolf vocabulary; Custom Skills are created.
Expected frequencyMonthly–quarterly (per Skill)
Suggested actionRetrieve the new Skill from the SkillEngine API (GET /taxonomy/skills/{skill_id}) and propagate changes.
Event type: ai.techwolf.taxonomy.skill.created.v1Event data
FieldDescription
tenant_nameIdentifies the tenant.
external_idIdentifies the Skill.
external_vendorIndicates the Skill’s vendor; pass as the vendor query parameter when fetching the Skill from the API.
{
  "specversion": "1.0",
  "type": "ai.techwolf.taxonomy.skill.created.v1",
  "source": "https://{tenant}.{region}.techwolf.ai/taxonomy/skills/{skill_external_id}",
  "id": "{event_uuid}",
  "time": "2024-01-15T10:30:00Z",
  "data": {
    "tenant_name": "{tenant}",
    "external_id": "{skill_external_id}",
    "external_vendor": "{skill_external_vendor}"
  }
}

Skill Updated

DetailSpecification
Emitted whenSkills are updated in the TechWolf vocabulary; Custom Skills are updated.
Expected frequencyMonthly–quarterly (per Skill)
Suggested actionRetrieve the updated Skill from the SkillEngine API (GET /taxonomy/skills/{skill_id}) and propagate changes.
Event type: ai.techwolf.taxonomy.skill.updated.v1Event data
FieldDescription
tenant_nameIdentifies the tenant.
external_idIdentifies the Skill.
external_vendorIndicates the Skill’s vendor; pass as the vendor query parameter when fetching the Skill from the API.
{
  "specversion": "1.0",
  "type": "ai.techwolf.taxonomy.skill.updated.v1",
  "source": "https://{tenant}.{region}.techwolf.ai/taxonomy/skills/{skill_external_id}",
  "id": "{event_uuid}",
  "time": "2024-01-15T10:30:00Z",
  "data": {
    "tenant_name": "{tenant}",
    "external_id": "{skill_external_id}",
    "external_vendor": "{skill_external_vendor}"
  }
}

Skill Deleted

DetailSpecification
Emitted whenSkills are removed from the TechWolf vocabulary; Custom Skills are deleted.
Expected frequencyMonthly–quarterly (per Skill)
Suggested actionThe Skill will no longer be available from the SkillEngine API (404). To handle out-of-order events, you can verify with GET /taxonomy/skills/{skill_id} and propagate the deletion.
Event type: ai.techwolf.taxonomy.skill.deleted.v1Event data
FieldDescription
tenant_nameIdentifies the tenant.
external_idIdentifies the Skill.
external_vendorIndicates the Skill’s vendor; use as the vendor query parameter when verifying via the API.
{
  "specversion": "1.0",
  "type": "ai.techwolf.taxonomy.skill.deleted.v1",
  "source": "https://{tenant}.{region}.techwolf.ai/taxonomy/skills/{skill_external_id}",
  "id": "{event_uuid}",
  "time": "2024-01-15T10:30:00Z",
  "data": {
    "tenant_name": "{tenant}",
    "external_id": "{skill_external_id}",
    "external_vendor": "{skill_external_vendor}"
  }
}

Taxonomy Updated

DetailSpecification
Emitted whenThe tenant Taxonomy or Vocabulary changes.
Expected frequencyWeekly (per tenant)
Suggested actionRetrieve Taxonomy changes from the SkillEngine API (POST /taxonomy/export). Filter by operation_type to get only the kind of change you need; use external_id from the event to request the specific change that triggered the webhook.
Event type: ai.techwolf.taxonomy.updated.v1Event data
FieldDescription
tenant_nameIdentifies the tenant.
operation_typeType of change; use to filter when calling the taxonomy or vocabulary export API. See POST /taxonomy/export for a full list of values.
external_idIdentifies the specific change; pass when calling the taxonomy export API to fetch only that change.
{
  "specversion": "1.0",
  "type": "ai.techwolf.taxonomy.updated.v1",
  "source": "https://{tenant}.{region}.techwolf.ai/taxonomy/export",
  "id": "{event_uuid}",
  "time": "2024-01-15T10:30:00Z",
  "data": {
    "tenant_name": "{tenant}",
    "operation_type": "{operation_type}",
    "external_id": "{operation_external_id}"
  }
}

Healthcheck

DetailSpecification
Emitted whenTechWolf checks that your webhook consumer is live.
Suggested actionRespond with a 2XX status code. No business logic required.
Payload format
{
  "specversion": "1.0",
  "type": "ai.techwolf.healthcheck",
  "source": "https://{tenant}.{region}.techwolf.ai/",
  "id": "{event_uuid}",
  "time": "2024-01-15T10:30:00Z",
  "data": {}
}