Events
Events are the payload sent to your subscribers. They represent actions taken on the Edlink platform, such as user logins, integration updates, or materialization failures. Each event has a specific type and a payload that contains relevant information about the event.
Event Structure
Each event is structured as a JSON object with the following fields:
type: The type of the event (e.g.person.login,materialization.scheduled).date: The timestamp of when the event occurred.payload: An object containing additional information specific to the event type.
{
"type": "person.login",
"date": "2024-08-11T12:34:56Z",
"payload": {
"integration_id": "string",
"materialization_id": "string"
}
}
Event Types
Click on an event type below to see its details:
| Type | When |
|---|---|
person.login | Emitted when a standard login is performed by a Person into your Application, (e.g. via Edlink's sso page). |
person.login.lti | Emitted when a LTI login is performed by a Person into your Application. |
person.login.scoped | Emitted when a scoped login is performed by a Person into your Application (typically this is the Edlink Widget authenticating). |
person.login.error | Emitted when a login is attempted but fails. |
person.login.initiated | Emitted when a Person initiates a login into your Application. |
application.created | Emitted when a new application is created on your team. |
application.updated | Emitted when an application's settings are updated. |
application.deleted | Emitted when an application is marked as destroyed. |
application.secret.created | Emitted when a new secret is created on your Application. |
application.secret.deleted | Emitted when a secret is deleted from your Application. |
integration.created | Emitted when a new integration is created between a Source and your Application. This usually occurs during onboarding. |
integration.updated | Emitted when an integration's properties is updated. |
integration.marked_for_deletion | Emitted when an integration's state is changed to destroyed. It will be deleted within 3 days. |
integration.destroyed | Emitted when an integration is actually destroyed. This action is irreversible. |
sharing_rule.created | Emitted when a sharing rule (or its conditions) is created on an integration. |
sharing_rule.updated | Emitted when a sharing rule (or its conditions) is updated on an integration. |
sharing_rule.deleted | Emitted when a sharing rule (and its conditions) is deleted from an integration. |
transformation.created | Emitted when a transformation is added to an integration. |
transformation.updated | Emitted when a transformation on an integration is updated. |
transformation.deleted | Emitted when a transformation is removed from an integration. |
materialization.scheduled | Emitted when a new materialization is scheduled. Typically as the result of a change to sharing rules, transformations, etc. |
materialization.started | Emitted when a materialization is claimed and starts running. |
materialization.completed | Emitted when a materialization finished successfully. |
materialization.pending | Emitted when a materialization is halted because it exceeded a safety threshold and requires manual review. |
materialization.error | Emitted when a materialization fails. |
materialization.canceled | Emitted when a materialization is canceled. |
materialization.data_changed | Emitted when a materialization finished and resulted in data being changed. |
service_account.created | Emitted when a service account is created on your team. |
service_account.deleted | Emitted when a service account is deleted from your team. |
service_account.token.created | Emitted when a token is created for a service account on your team. |
service_account.token.deleted | Emitted when a token is deleted from a service account on your team. |
team.updated | Emitted when your team's settings are updated. |
team.member.invited | Emitted when someone is invited to join your team. |
team.member.added | Emitted when someone accepts an invitation and is added to your team. |
team.member.updated | Emitted when a team member's role is updated. |
team.member.deleted | Emitted when a team member is removed from your team. |
Events
Events can vary based on the actions taken on the platform. Here are the current event types you can expect to receive:
Fields that are not required could be omitted from the payload or be null / undefined.
Team-scoped events (service accounts, team settings, and memberships) are delivered to all non-destroyed applications on the team.
Person Login
Emitted when a standard login is performed by a Person into your Application, (e.g. via Edlink's sso page).
| Field | Required | Description |
|---|---|---|
application_id | ✅ | The UUID of the application the login is for. |
integration_id | ❔ | The UUID of the integration the login is for (if known). |
person_id | ❔ | The UUID of the person that is logging in (if known). |
Example
{
"type": "person.login",
"date": "2024-08-11T12:34:56Z",
"payload": {
"application_id": "00000000-0000-0000-0000-000000000000",
"integration_id": "00000000-0000-0000-0000-000000000000",
"person_id": "00000000-0000-0000-0000-000000000000"
}
}
Person Login LTI
Emitted when a LTI login is performed by a Person into your Application.
| Field | Required | Description |
|---|---|---|
application_id | ✅ | The UUID of the application the login is for. |
integration_id | ❔ | The UUID of the integration the login is for (if known). |
person_id | ❔ | The UUID of the person that is logging in (if known). |
Example
{
"type": "person.login.lti",
"date": "2024-08-11T12:34:56Z",
"payload": {
"application_id": "00000000-0000-0000-0000-000000000000",
"integration_id": "00000000-0000-0000-0000-000000000000",
"person_id": "00000000-0000-0000-0000-000000000000"
}
}
Person Login Scoped
Emitted when a scoped login is performed by a Person into your Application (typically this is the Edlink Widget authenticating).
| Field | Required | Description |
|---|---|---|
application_id | ✅ | The UUID of the application the login is for. |
integration_id | ❔ | The UUID of the integration the login is for (if known). |
person_id | ❔ | The UUID of the person that is logging in (if known). |
Example
{
"type": "person.login.scoped",
"date": "2024-08-11T12:34:56Z",
"payload": {
"application_id": "00000000-0000-0000-0000-000000000000",
"integration_id": "00000000-0000-0000-0000-000000000000",
"person_id": "00000000-0000-0000-0000-000000000000"
}
}
Person Login Error
Emitted when a login is attempted but fails.
| Field | Required | Description |
|---|---|---|
application_id | ✅ | The UUID of the application the login is for. |
integration_id | ❔ | The UUID of the integration the login is for (if known). |
person_id | ❔ | The UUID of the person that is logging in (if known). |
Example
{
"type": "person.login.error",
"date": "2024-08-11T12:34:56Z",
"payload": {
"application_id": "00000000-0000-0000-0000-000000000000",
"integration_id": null,
"person_id": null
}
}
Person Login Initiated
Emitted when a Person initiates a login into your Application.
| Field | Required | Description |
|---|---|---|
application_id | ✅ | The UUID of the application the login is for. |
integration_id | ❔ | The UUID of the integration the login is for (if known). |
person_id | ❔ | The UUID of the person that is logging in (if known). |
Example
{
"type": "person.login.initiated",
"date": "2024-08-11T12:34:56Z",
"payload": {
"application_id": "00000000-0000-0000-0000-000000000000",
"integration_id": null,
"person_id": null
}
}
Application Created
Emitted when a new application is created on your team.
| Field | Required | Description |
|---|---|---|
application_id | ✅ | The UUID of the application that was created. |
team_id | ✅ | The UUID of the team that owns the application. |
application_name | ✅ | The name of the application. |
application_status | ✅ | The status of the application. |
Example
{
"type": "application.created",
"date": "2024-08-11T12:34:56Z",
"payload": {
"application_id": "00000000-0000-0000-0000-000000000000",
"team_id": "00000000-0000-0000-0000-000000000000",
"application_name": "My Application",
"application_status": "released"
}
}
Application Updated
Emitted when an application's settings are updated.
| Field | Required | Description |
|---|---|---|
application_id | ✅ | The UUID of the application that was updated. |
team_id | ✅ | The UUID of the team that owns the application. |
application_name | ✅ | The name of the application. |
application_status | ✅ | The status of the application. |
Example
{
"type": "application.updated",
"date": "2024-08-11T12:34:56Z",
"payload": {
"application_id": "00000000-0000-0000-0000-000000000000",
"team_id": "00000000-0000-0000-0000-000000000000",
"application_name": "My Application",
"application_status": "released"
}
}
Application Deleted
Emitted when an application is marked as destroyed.
| Field | Required | Description |
|---|---|---|
application_id | ✅ | The UUID of the application that was deleted. |
team_id | ✅ | The UUID of the team that owned the application. |
application_name | ✅ | The name of the application. |
Example
{
"type": "application.deleted",
"date": "2024-08-11T12:34:56Z",
"payload": {
"application_id": "00000000-0000-0000-0000-000000000000",
"team_id": "00000000-0000-0000-0000-000000000000",
"application_name": "My Application"
}
}
Application Secret Created
Emitted when a secret is created for your Application.
| Field | Required | Description |
|---|---|---|
application_id | ✅ | The UUID of the application the secret is for. |
credential_id | ✅ | The UUID of the credential that was created. |
Example
{
"type": "application.secret.created",
"date": "2024-08-11T12:34:56Z",
"payload": {
"application_id": "00000000-0000-0000-0000-000000000000",
"credential_id": "00000000-0000-0000-0000-000000000000"
}
}
Application Secret Deleted
Emitted when a secret is deleted from your Application.
| Field | Required | Description |
|---|---|---|
application_id | ✅ | The UUID of the application the secret is for. |
credential_id | ✅ | The UUID of the credential that was deleted. |
Example
{
"type": "application.secret.deleted",
"date": "2024-08-11T12:34:56Z",
"payload": {
"application_id": "00000000-0000-0000-0000-000000000000",
"credential_id": "00000000-0000-0000-0000-000000000000"
}
}
Integration Created
Emitted when a new integration is created between a Source and your Application. This usually occurs during onboarding.
| Field | Required | Description |
|---|---|---|
integration_id | ✅ | The UUID of the integration the materialization is for. |
application_id | ✅ | The UUID of the application the integration is for. |
source_id | ✅ | The UUID of the source the integration is for. |
destination_id | ❔ | The UUID of the destination the integration is for. |
permissions | ✅ | The permissions granted to the integration. |
properties | ✅ | The properties of the integration. |
status | ✅ | The status of the integration. |
region_id | ✅ | The UUID of the region the integration is in. |
Example
{
"type": "integration.created",
"date": "2024-08-11T12:34:56Z",
"payload": {
"integration_id": "00000000-0000-0000-0000-000000000000",
"materialization_id": "00000000-0000-0000-0000-000000000000",
"application_id": "00000000-0000-0000-0000-000000000000",
"source_id": "00000000-0000-0000-0000-000000000000",
"destination_id": null,
"permissions": [],
"properties": { "custom_property": "value" },
"status": "requested",
"region_id": "00000000-0000-0000-0000-000000000000"
}
}
Integration Updated
Emitted when an integration's settings or properties are updated.
| Field | Required | Description |
|---|---|---|
integration_id | ✅ | The UUID of the integration the materialization is for. |
application_id | ✅ | The UUID of the application the integration is for. |
source_id | ✅ | The UUID of the source the integration is for. |
destination_id | ❔ | The UUID of the destination the integration is for. |
permissions | ✅ | The permissions granted to the integration. |
properties | ✅ | The properties of the integration. |
status | ✅ | The status of the integration. |
region_id | ✅ | The UUID of the region the integration is in. |
Example
{
"type": "integration.updated",
"date": "2024-08-11T12:34:56Z",
"payload": {
"integration_id": "00000000-0000-0000-0000-000000000000",
"materialization_id": "00000000-0000-0000-0000-000000000000",
"application_id": "00000000-0000-0000-0000-000000000000",
"source_id": "00000000-0000-0000-0000-000000000000",
"destination_id": null,
"permissions": [],
"properties": { "custom_property": "value" },
"status": "active",
"region_id": "00000000-0000-0000-0000-000000000000"
}
}
Integration Marked for Deletion
Emitted when an integration's state is changed to destroyed. It will be deleted within 3 days.
| Field | Required | Description |
|---|---|---|
integration_id | ✅ | The UUID of the integration the materialization is for. |
application_id | ✅ | The UUID of the application the integration is for. |
source_id | ✅ | The UUID of the source the integration is for. |
destination_id | ❔ | The UUID of the destination the integration is for. |
permissions | ✅ | The permissions granted to the integration. |
properties | ✅ | The properties of the integration. |
status | ✅ | The status of the integration. |
region_id | ✅ | The UUID of the region the integration is in. |
Example
{
"type": "integration.marked_for_deletion",
"date": "2024-08-11T12:34:56Z",
"payload": {
"integration_id": "00000000-0000-0000-0000-000000000000",
"materialization_id": "00000000-0000-0000-0000-000000000000",
"application_id": "00000000-0000-0000-0000-000000000000",
"source_id": "00000000-0000-0000-0000-000000000000",
"destination_id": null,
"permissions": [],
"properties": { "custom_property": "value" },
"status": "destroyed",
"region_id": "00000000-0000-0000-0000-000000000000"
}
}
Integration Destroyed
Emitted when an integration is actually destroyed. This action is irreversible.
| Field | Required | Description |
|---|---|---|
integration_id | ✅ | The UUID of the integration the materialization is for. |
Example
{
"type": "integration.destroyed",
"date": "2024-08-11T12:34:56Z",
"payload": {
"integration_id": "00000000-0000-0000-0000-000000000000"
}
}
Emitted when a sharing rule (or its conditions) is created on an integration.
| Field | Required | Description |
|---|---|---|
rule_id | ✅ | The UUID of the rule that was created. |
integration_id | ✅ | The UUID of the integration the rule belongs to. |
source_id | ✅ | The UUID of the source for the integration. |
rule_type | ✅ | The type of the rule. |
rule_state | ✅ | The state of the rule. |
rule_target | ✅ | The target of the rule. |
Example
{
"type": "sharing_rule.created",
"date": "2024-08-11T12:34:56Z",
"payload": {
"rule_id": "00000000-0000-0000-0000-000000000000",
"integration_id": "00000000-0000-0000-0000-000000000000",
"source_id": "00000000-0000-0000-0000-000000000000",
"rule_type": "sharing",
"rule_state": "draft",
"rule_target": "people"
}
}
Emitted when a sharing rule (or its conditions) is updated on an integration.
| Field | Required | Description |
|---|---|---|
rule_id | ✅ | The UUID of the rule that was updated. |
integration_id | ✅ | The UUID of the integration the rule belongs to. |
source_id | ✅ | The UUID of the source for the integration. |
rule_type | ✅ | The type of the rule. |
rule_state | ✅ | The state of the rule. |
rule_target | ✅ | The target of the rule. |
Example
{
"type": "sharing_rule.updated",
"date": "2024-08-11T12:34:56Z",
"payload": {
"rule_id": "00000000-0000-0000-0000-000000000000",
"integration_id": "00000000-0000-0000-0000-000000000000",
"source_id": "00000000-0000-0000-0000-000000000000",
"rule_type": "sharing",
"rule_state": "active",
"rule_target": "people"
}
}
Emitted when a sharing rule (and its conditions) is deleted from an integration.
| Field | Required | Description |
|---|---|---|
rule_id | ✅ | The UUID of the rule that was deleted. |
integration_id | ✅ | The UUID of the integration the rule belonged to. |
source_id | ✅ | The UUID of the source for the integration. |
rule_type | ✅ | The type of the rule. |
Example
{
"type": "sharing_rule.deleted",
"date": "2024-08-11T12:34:56Z",
"payload": {
"rule_id": "00000000-0000-0000-0000-000000000000",
"integration_id": "00000000-0000-0000-0000-000000000000",
"source_id": "00000000-0000-0000-0000-000000000000",
"rule_type": "sharing"
}
}
Transformation Created
Emitted when a transformation is added to an integration.
| Field | Required | Description |
|---|---|---|
transformation_id | ✅ | The UUID of the transformation that was created. |
integration_id | ✅ | The UUID of the integration the transformation is for. |
block_id | ✅ | The UUID of the block used by the transformation. |
Example
{
"type": "transformation.created",
"date": "2024-08-11T12:34:56Z",
"payload": {
"transformation_id": "00000000-0000-0000-0000-000000000000",
"integration_id": "00000000-0000-0000-0000-000000000000",
"block_id": "00000000-0000-0000-0000-000000000000"
}
}
Transformation Updated
Emitted when a transformation on an integration is updated.
| Field | Required | Description |
|---|---|---|
transformation_id | ✅ | The UUID of the transformation that was updated. |
integration_id | ✅ | The UUID of the integration the transformation is for. |
block_id | ✅ | The UUID of the block used by the transformation. |
Example
{
"type": "transformation.updated",
"date": "2024-08-11T12:34:56Z",
"payload": {
"transformation_id": "00000000-0000-0000-0000-000000000000",
"integration_id": "00000000-0000-0000-0000-000000000000",
"block_id": "00000000-0000-0000-0000-000000000000"
}
}
Transformation Deleted
Emitted when a transformation is removed from an integration.
| Field | Required | Description |
|---|---|---|
transformation_id | ✅ | The UUID of the transformation that was deleted. |
integration_id | ✅ | The UUID of the integration the transformation was for. |
Example
{
"type": "transformation.deleted",
"date": "2024-08-11T12:34:56Z",
"payload": {
"transformation_id": "00000000-0000-0000-0000-000000000000",
"integration_id": "00000000-0000-0000-0000-000000000000"
}
}
Materialization Scheduled
Emitted when a new materialization is scheduled. Typically as the result of a change to sharing rules, transformations, etc.
| Field | Required | Description |
|---|---|---|
integration_id | ✅ | The UUID of the integration the materialization is for. |
materialization_id | ✅ | The UUID of the materialization that was scheduled. |
Example
{
"type": "materialization.scheduled",
"date": "2024-08-11T12:34:56Z",
"payload": {
"integration_id": "00000000-0000-0000-0000-000000000000",
"materialization_id": "00000000-0000-0000-0000-000000000000"
}
}
Materialization Started
Emitted when a materialization is claimed and starts running.
| Field | Required | Description |
|---|---|---|
integration_id | ✅ | The UUID of the integration the materialization is for. |
materialization_id | ✅ | The UUID of the materialization that has started. |
Example
{
"type": "materialization.started",
"date": "2024-08-11T12:34:56Z",
"payload": {
"integration_id": "00000000-0000-0000-0000-000000000000",
"materialization_id": "00000000-0000-0000-0000-000000000000"
}
}
Materialization Completed
Emitted when a materialization finished successfully.
| Field | Required | Description |
|---|---|---|
integration_id | ✅ | The UUID of the integration the materialization is for. |
materialization_id | ✅ | The UUID of the materialization that ran. |
Example
{
"type": "materialization.completed",
"date": "2024-08-11T12:34:56Z",
"payload": {
"integration_id": "00000000-0000-0000-0000-000000000000",
"materialization_id": "00000000-0000-0000-0000-000000000000"
}
}
Materialization Pending
Emitted when a materialization is halted because it exceeded a safety threshold and requires manual review.
| Field | Required | Description |
|---|---|---|
integration_id | ✅ | The UUID of the integration the materialization is for. |
materialization_id | ✅ | The UUID of the materialization that was halted. |
reason | ✅ | A description of why the materialization was halted. |
thresholds | ✅ | Details about which thresholds were exceeded. |
Example
{
"type": "materialization.pending",
"date": "2024-08-11T12:34:56Z",
"payload": {
"integration_id": "00000000-0000-0000-0000-000000000000",
"materialization_id": "00000000-0000-0000-0000-000000000000",
"reason": "Create threshold exceeded for people (absolute)",
"thresholds": {
"people": {
"threshold": 100,
"actual": 250
}
}
}
}
Materialization Error
Emitted when a materialization fails.
| Field | Required | Description |
|---|---|---|
integration_id | ✅ | The UUID of the integration the materialization is for. |
materialization_id | ✅ | The UUID of the materialization that failed. |
Example
{
"type": "materialization.error",
"date": "2024-08-11T12:34:56Z",
"payload": {
"integration_id": "00000000-0000-0000-0000-000000000000",
"materialization_id": "00000000-0000-0000-0000-000000000000"
}
}
Materialization Canceled
Emitted when a materialization is canceled.
| Field | Required | Description |
|---|---|---|
integration_id | ✅ | The UUID of the integration the materialization is for. |
materialization_id | ✅ | The UUID of the materialization that was canceled. |
Example
{
"type": "materialization.canceled",
"date": "2024-08-11T12:34:56Z",
"payload": {
"integration_id": "00000000-0000-0000-0000-000000000000",
"materialization_id": "00000000-0000-0000-0000-000000000000"
}
}
Materialization Data Changed
Emitted when a materialization finished and resulted in data being changed.
| Field | Required | Description |
|---|---|---|
integration_id | ✅ | The UUID of the integration the materialization is for. |
materialization_id | ✅ | The UUID of the materialization that completed and changed data. |
changes | ✅ | A summary of the changes made during the materialization process. |
The changes field in the materialization.data_changed event payload contains a summary of the changes made during the materialization process. It is an object where each key is the entity type that was affected, and the value is another object detailing the number of records inserted, updated, and deleted.
Example
{
"type": "materialization.data_changed",
"date": "2024-08-11T12:34:56Z",
"payload": {
"integration_id": "00000000-0000-0000-0000-000000000000",
"materialization_id": "00000000-0000-0000-0000-000000000000",
"changes": {
"districts": { "inserted": 0, "updated": 0, "deleted": 0 },
"schools": { "inserted": 1, "updated": 2, "deleted": 0 },
"sessions": { "inserted": 0, "updated": 0, "deleted": 0 },
"periods": { "inserted": 0, "updated": 0, "deleted": 0 },
"stops": { "inserted": 0, "updated": 0, "deleted": 0 },
"calendars": { "inserted": 0, "updated": 0, "deleted": 0 },
"days": { "inserted": 0, "updated": 0, "deleted": 0 },
"departments": { "inserted": 0, "updated": 0, "deleted": 0 },
"subjects": { "inserted": 0, "updated": 0, "deleted": 0 },
"facilities": { "inserted": 0, "updated": 0, "deleted": 0 },
"rooms": { "inserted": 0, "updated": 0, "deleted": 0 },
"courses": { "inserted": 0, "updated": 0, "deleted": 0 },
"classes": { "inserted": 4, "updated": 6, "deleted": 2 },
"sections": { "inserted": 0, "updated": 0, "deleted": 0 },
"people": { "inserted": 10, "updated": 5, "deleted": 2 },
"incidents": { "inserted": 0, "updated": 0, "deleted": 0 },
"enrollments": { "inserted": 15, "updated": 3, "deleted": 1 },
"agents": { "inserted": 0, "updated": 0, "deleted": 0 },
"meetings": { "inserted": 0, "updated": 0, "deleted": 0 },
"attendance": { "inserted": 0, "updated": 0, "deleted": 0 },
"assets": { "inserted": 0, "updated": 0, "deleted": 0 },
"vehicles": { "inserted": 0, "updated": 0, "deleted": 0 },
"routes": { "inserted": 0, "updated": 0, "deleted": 0 },
"fees": { "inserted": 0, "updated": 0, "deleted": 0 }
}
}
}
Service Account Created
Emitted when a service account is created on your team.
| Field | Required | Description |
|---|---|---|
team_id | ✅ | The UUID of the team the service account is for. |
user_id | ✅ | The UUID of the service account user. |
Example
{
"type": "service_account.created",
"date": "2024-08-11T12:34:56Z",
"payload": {
"team_id": "00000000-0000-0000-0000-000000000000",
"user_id": "00000000-0000-0000-0000-000000000000"
}
}
Service Account Deleted
Emitted when a service account is deleted from your team.
| Field | Required | Description |
|---|---|---|
team_id | ✅ | The UUID of the team the service account was for. |
user_id | ✅ | The UUID of the service account user. |
Example
{
"type": "service_account.deleted",
"date": "2024-08-11T12:34:56Z",
"payload": {
"team_id": "00000000-0000-0000-0000-000000000000",
"user_id": "00000000-0000-0000-0000-000000000000"
}
}
Service Account Token Created
Emitted when a token is created for a service account on your team.
| Field | Required | Description |
|---|---|---|
team_id | ✅ | The UUID of the team the service account is for. |
user_id | ✅ | The UUID of the service account user. |
token_id | ✅ | The UUID of the token that was created. |
Example
{
"type": "service_account.token.created",
"date": "2024-08-11T12:34:56Z",
"payload": {
"team_id": "00000000-0000-0000-0000-000000000000",
"user_id": "00000000-0000-0000-0000-000000000000",
"token_id": "00000000-0000-0000-0000-000000000000"
}
}
Service Account Token Deleted
Emitted when a token is deleted from a service account on your team.
| Field | Required | Description |
|---|---|---|
team_id | ✅ | The UUID of the team the service account is for. |
user_id | ✅ | The UUID of the service account user. |
token_id | ✅ | The UUID of the token that was deleted. |
Example
{
"type": "service_account.token.deleted",
"date": "2024-08-11T12:34:56Z",
"payload": {
"team_id": "00000000-0000-0000-0000-000000000000",
"user_id": "00000000-0000-0000-0000-000000000000",
"token_id": "00000000-0000-0000-0000-000000000000"
}
}
Team Updated
Emitted when your team's settings are updated.
| Field | Required | Description |
|---|---|---|
team_id | ✅ | The UUID of the team. |
team_name | ✅ | The name of the team. |
team_type | ✅ | The type of the team. |
team_status | ✅ | The status of the team. |
Example
{
"type": "team.updated",
"date": "2024-08-11T12:34:56Z",
"payload": {
"team_id": "00000000-0000-0000-0000-000000000000",
"team_name": "My Team",
"team_type": "developer",
"team_status": "active"
}
}
Team Member Invited
Emitted when someone is invited to join your team.
| Field | Required | Description |
|---|---|---|
team_id | ✅ | The UUID of the team. |
invitation_id | ✅ | The UUID of the invitation. |
invitation_email | ✅ | The email address of the invitee. |
invitation_type | ✅ | The membership type being offered. |
Example
{
"type": "team.member.invited",
"date": "2024-08-11T12:34:56Z",
"payload": {
"team_id": "00000000-0000-0000-0000-000000000000",
"invitation_id": "00000000-0000-0000-0000-000000000000",
"invitation_email": "user@example.com",
"invitation_type": "readwrite"
}
}
Team Member Added
Emitted when someone accepts an invitation and is added to your team.
| Field | Required | Description |
|---|---|---|
team_id | ✅ | The UUID of the team. |
membership_id | ✅ | The UUID of the new membership. |
user_id | ✅ | The UUID of the user who was added. |
membership_type | ✅ | The membership type that was granted. |
Example
{
"type": "team.member.added",
"date": "2024-08-11T12:34:56Z",
"payload": {
"team_id": "00000000-0000-0000-0000-000000000000",
"membership_id": "00000000-0000-0000-0000-000000000000",
"user_id": "00000000-0000-0000-0000-000000000000",
"membership_type": "readwrite"
}
}
Team Member Updated
Emitted when a team member's role is updated.
| Field | Required | Description |
|---|---|---|
team_id | ✅ | The UUID of the team. |
membership_id | ✅ | The UUID of the membership. |
user_id | ✅ | The UUID of the user. |
membership_type | ✅ | The updated membership type. |
Example
{
"type": "team.member.updated",
"date": "2024-08-11T12:34:56Z",
"payload": {
"team_id": "00000000-0000-0000-0000-000000000000",
"membership_id": "00000000-0000-0000-0000-000000000000",
"user_id": "00000000-0000-0000-0000-000000000000",
"membership_type": "owner"
}
}
Team Member Deleted
Emitted when a team member is removed from your team.
| Field | Required | Description |
|---|---|---|
team_id | ✅ | The UUID of the team. |
membership_id | ✅ | The UUID of the membership. |
user_id | ✅ | The UUID of the user who was removed. |
membership_type | ✅ | The membership type that was removed. |
Example
{
"type": "team.member.deleted",
"date": "2024-08-11T12:34:56Z",
"payload": {
"team_id": "00000000-0000-0000-0000-000000000000",
"membership_id": "00000000-0000-0000-0000-000000000000",
"user_id": "00000000-0000-0000-0000-000000000000",
"membership_type": "readwrite"
}
}
