Skill

Engagement Timeline

Build a chronological timeline of meetings and emails with an account or contact, split by type and participant, ready to drill into any engagement.

Overview

Engagement Timeline assembles a chronological record of the meetings and emails your team has had with an account or contact. It reads from the calendar, email, and meeting providers connected to ZoomInfo and returns a timeline newest-first, a split by engagement type, and a participant list with a count per person. Point it at a company, a contact, or neither to see a timeline of your own recent activity across all accounts.

The skill is built for sellers and account managers who want the relationship history at a glance before a call, and for managers checking engagement depth on an account. It defaults to the last 90 days and slides the window backward in 90-day chunks when you ask for a longer history. It tells you when it is looking across multiple windows, so the wait is expected. Scope by ZoomInfo ID, by name or domain, or leave it open.

The timeline flags the most recent engagement and the gap since, and notes anyone who engaged early in the window but has gone quiet, which is often the signal worth acting on. Every engagement's ID stays in working context, so you can name any one of them, the demo on the 14th or the last email, and hand it to conversation intelligence for what was discussed. When nothing comes back, the skill says no engagements were found rather than implying no relationship exists.

What It Does

  • Chronological assembly: Merges meetings and emails into one newest-first timeline with date, type, subject, and the participants on each.
  • Window sliding: Covers the last 90 days by default and steps backward in 90-day chunks for a longer history, merging the results.
  • Type breakdown: Splits the total into meetings versus emails over the actual date range covered.
  • Participant counts: Tallies engagements per person in a most-engaged-first table, noting account when it differs.
  • Quiet-contact flagging: Marks the last contact, the gap since, and anyone who was active early but has since gone silent.
  • Engagement handoff: Keeps each engagement's ID ready so you can double-click one for a conversation-level read of what was said.

Use Cases

Review Relationship History Before a Call

Ahead of a call with an account, you want the full arc of contact without digging through calendars and inboxes. The skill returns a timeline of every meeting and email, who was on each, and how long since the last touch, so you walk in knowing exactly where the relationship stands.

Check Engagement Depth This Year

A manager wants to know how often the team has actually engaged a strategic account. Ask for the year, and the skill slides the window back across multiple 90-day chunks. It then reports the total, the meetings-to-emails split, and which people have carried the relationship, a grounded read on account coverage.

Spot a Stakeholder Who Went Quiet

On an active deal, a champion who engaged heavily early and then dropped off is a risk worth catching. The participant view flags anyone present at the start of the window but absent recently, so you can reach out before the silence turns into a stalled deal.

Skill Definition

The raw markdown Claude uses when this skill is invoked.

---
name: engagement-timeline
description: Build a timeline of engagements (meetings and emails) with an account or contact over a date range. Identify the account or contact by ZoomInfo ID (preferred), or by name or domain (triggers a lookup), or omit both to time-line your own recent engagements. Defaults to the last 90 days and can slide the window further back for a longer history. Returns a chronological timeline, a breakdown by engagement type, and a participant list with per-person engagement counts — and keeps each engagement's ID in context so you can immediately double-click any one to ask what was discussed. Use when someone asks "when did we last meet with X", "how often have we engaged this account", "show me the history with this contact", or wants a relationship timeline before a call.
---

# Engagement Timeline

Build a timeline of meetings and emails with an account or contact, then let the user double-click any engagement to see what was discussed.

## Prerequisites

`browse_engagements` reads from the calendar, email, and meeting providers connected to ZoomInfo. It requires at least one active calendar, email, or meeting integration in the workspace. If nothing is connected, `browse_engagements` returns no results — say so plainly and point the user to their ZoomInfo admin rather than implying there has been no contact.

`browse_engagements` is free (no credits). The optional double-click step uses `conversation_intelligence`, which consumes AI credits.

## Input

Provided via `$ARGUMENTS`:

- **Scope** — one of:
  - An **account**: ZoomInfo company ID (preferred), or a company name/domain (resolve via `search_companies`).
  - A **contact**: ZoomInfo contact ID (preferred), or a name + company (resolve via `search_contacts`).
  - **Neither**: time-line the current user's own recent engagements across all accounts.
- **How far back** (optional) — default is the last 90 days. "Last quarter", "this year", "since January", or a specific range all work; for anything beyond 90 days the window slides (see Workflow).
- **Type** (optional) — meetings only, emails only, or both (default both).

## Workflow

1. **Resolve scope.** Use a supplied ZoomInfo ID directly as `zoominfoCompanyId` or `zoominfoContactId`. Otherwise resolve a name/domain via `search_companies` / `search_contacts` and confirm the top match if it is ambiguous. With no scope, call `browse_engagements` with no ID to get the user's own engagements.

2. **Set the window.** `browse_engagements` accepts a date range up to 90 days wide (`engagementDateStart`, `engagementDateEnd`), ending no more than a month in the future. Default to the last 90 days. For a longer history, **slide the window backward in 90-day chunks** (e.g. 0-90 days ago, then 90-180, then 180-270) and merge the results, stopping when a chunk comes back empty or you reach the user's requested horizon. Tell the user when you are looking back across multiple windows so the wait is expected.

3. **Pull engagements.** Call `browse_engagements` with the resolved scope, `engagementType` (default `EMAILS_AND_MEETINGS`), `sort: -chronological` (newest first), and `engagementLimit` up to 50 per call. Set `userIntent` to the user's actual request. If a window is full at the limit, narrow it and page rather than silently truncating.

4. **Aggregate.** From the merged set compute: total engagements and the date range actually covered; a split by type (meetings vs emails); and a participant list with a count of engagements per person (name, and account where it differs). Retain each engagement's ID and the account/contact IDs in your working context — do **not** print raw IDs in the user-facing timeline, but keep them so the user can pick one to analyze.

## Output Format

### Summary

One line: who this is for, how many engagements over what actual date range, and the split (e.g. "14 engagements with Acme over the last 88 days — 9 meetings, 5 emails").

### Timeline

Newest first. One line per engagement: date, type, title/subject, and the key participants. Group by month if the range spans several months. Flag the most recent engagement and the gap since (e.g. "last contact 12 days ago").

### Participants

A short table, most-engaged first:

| Person | Account | Engagements |
|--------|---------|-------------|

Note anyone who has gone quiet (engaged early in the window, absent recently) — that is often the signal worth acting on.

### Double-click any engagement

Close by offering the next step: the user can name any engagement above ("the demo on the 14th", "the last email") and you will pass its engagement ID to `conversation_intelligence` to answer what was discussed, what was decided, or what is still open. Keep CI scoped to that single engagement; do not use it to search the timeline by topic or to count mentions (it cannot).

### When there is no data

If `browse_engagements` returns nothing, do not present an empty timeline as "no relationship". State that no engagements were found for the scope and window, that this may mean no connected integration covers them, and suggest widening the window or checking integration status with the ZoomInfo admin.

Install Plugin

This skill runs via the ZoomInfo MCP plugin for Claude Code.

Get Plugin on GitHub

Created by

Rowan Bailey

Rowan Bailey

Senior Director, Product

Provided by

ZoomInfo

Capabilities

  • Chronological timeline of meetings and emails for an account or contact
  • Defaults to 90 days and slides the window back for longer history
  • Breakdown by engagement type and a per-person participant count
  • Flags the last contact, the gap since, and anyone who has gone quiet
  • Hands any engagement to conversation_intelligence for what was discussed