vendor/intercom-events · vendor documented
Intercom events need a name, seconds, and a contact
event_name is required. created_at is Unix seconds. Identify the contact with user_id, email, or Intercom's id. The widget loader is vendor/intercom.
created_at is seconds, not Date.now()
A 13-digit value is milliseconds. Intercom documents seconds.
What this pack matches
Rules
Codes are stable. A finding in CI, MCP, or the playground lands on the same id.
| Field | Required | What it checks | Rule ids | Source |
|---|---|---|---|---|
event_name |
required | It is the name of the event. Intercom documents it as required. Fix: Set `event_name` to a past-tense verb-noun, such as `placed-order`. | vendor.intercom-events.body.event_name.missingvendor.intercom-events.body.event_name.empty |
docs |
created_at |
required | Intercom documents `created_at` as a UTC Unix timestamp in seconds. A 13-digit value is milliseconds. Fix: Send seconds since epoch, a 10-digit integer. | vendor.intercom-events.body.created_at.missingvendor.intercom-events.body.created_at.emptyvendor.intercom-events.body.created_at.invalid |
docs |
user_id |
optional | It is your identifier for the user. Intercom requires `user_id`, `email`, or `id`. | vendor.intercom-events.body.user_id.empty |
docs |
email |
optional | It is the user's email when email is how you identify contacts. | vendor.intercom-events.body.email.empty |
docs |
id |
optional | It is Intercom's contact id. Required for leads when `user_id` and `email` are absent. | vendor.intercom-events.body.id.empty |
docs |
intercom_user_id |
optional | It is Intercom's identifier for the user. | vendor.intercom-events.body.intercom_user_id.empty |
docs |
body.contact_identifier_required |
required | The event has no contact identifier. Intercom documents `user_id`, `email`, or `id` as required. Fix: Send `user_id`, `email`, or Intercom's `id`. | vendor.intercom-events.body.contact_identifier_required |
docs |
Validate a payload
pixellint validate json @payload.json --rulepack vendor/intercom-events
Try this failing payload in the playground. Intercom event with millisecond created_at.
{"event_name":"placed-order","created_at":1770000000000,"user_id":"user-10024"}
cargo install pixellint
·
npm install pixellint