Skip to main content
An activity is a single event logged against a contact or a company: an email, a call, a LinkedIn message, an SMS, a WhatsApp message, or an occurrence of a custom activity type you define. Activities feed the scoring engine and show up in the contact and company timelines in the UI. There are two kinds of activity:
  • Standard activities: call, email, linkedin_message, sms, whatsapp. These have a fixed set of fields.
  • Custom activities: activity types you define yourself (for example “Demo Booked” or “Trial Started”), each with its own schema of fields.

Configuration

Common activity attributes

These fields exist on every activity, standard or custom, and are the ones exposed to the filter engine (get_filter_schema with entity: "activity" or a custom_activity_<id> entity).

Standard activity types

Each standard activity is logged by identifying the contact (email, linkedin_url, or phone, matched against the contact’s own fields) and a properties object with the fields below. source is optional; omit it to use the implicit revyops source. If a contact can’t be matched from email/linkedin_url/phone, the request is rejected: a matching contact is required for standard activities.

Call

POST /public/activities/standard/call/

Email

POST /public/activities/standard/email/ This is a lighter-weight way to log an email event against a contact. For the full Email object (sends, replies, custom fields, and search) see Emails.

LinkedIn Message

POST /public/activities/standard/linkedin_message/

SMS

POST /public/activities/standard/sms/

WhatsApp

POST /public/activities/standard/whatsapp/ Same fields as SMS.

Custom activity types and custom activities

A custom activity type is a definition you create once: a name, whether it applies to contacts or companies, and a field schema. Logging a custom activity is then a separate call that references the type and fills in its fields.

Defining a type

POST /public/activities/types/ (also available through the MCP create_custom_activity_type tool, which additionally sets up the type’s scoring rule in one call). PATCH /public/activities/custom/ updates a type’s name, schema, or applies_to by activity_key (the type’s id). DELETE /public/activities/custom/ removes a type by activity_key; it fails if activities already exist for it.

Logging an occurrence

POST /public/activities/custom/

Custom activity sources

Sources (also called origins) are the keys a sender puts in source when logging an activity. Every client has the implicit revyops source; additional sources (for example a webhook integration) can be registered and scoped to the activity types they’re allowed to send. See the MCP list_sources, create_source, update_source, and delete_source tools.

Relationships

  • Contact: a standard or contact-scoped custom activity links to one contact, matched by email, LinkedIn URL, or phone at ingestion time. A contact’s activities are reachable through relations like emails, calls, linkedin_messages, sms_messages, whatsapp_messages, and the custom activity relations exposed by get_filter_schema.
  • Company: a company-scoped custom activity links to one company, matched by domain.
  • Person: a contact’s activities also roll up to that contact’s person record.

Scoring

Every scored activity is tied to a scoring rule with a weight (-100 to 100) and, optionally, a decay profile. Each time the activity occurs, its weight is added to the person’s or company’s total score. As the activity ages, its contribution fades according to its decay profile:
A decay profile with a period of -1 is persistent: it never decays. The total score shown in the UI is the sum of every scored activity’s current (post-decay) value. A scoring rule can also carry a frequency cap, which limits how often an occurrence adds points to the same person: every time, once per time window, or once per distinct value of one of the activity’s fields. See the MCP list_scoring_rules and update_scoring_rule tools, and list_decay_profiles for managing decay profiles. Public API
  • POST /public/activities/standard/call/, .../email/, .../linkedin_message/, .../sms/, .../whatsapp/
  • GET/POST /public/activities/types/
  • POST/PATCH/DELETE /public/activities/custom/
MCP tools
  • list_sources, create_source, update_source, delete_source
  • set_activity_sources
  • list_custom_activity_types, create_custom_activity_type, update_custom_activity_type, delete_custom_activity_type
  • list_scoring_rules, update_scoring_rule
  • list_decay_profiles, create_decay_profile, update_decay_profile, delete_decay_profile
  • get_filter_schema, query_entity (entity activity, or a specific custom_activity_<id>)