> ## Documentation Index
> Fetch the complete documentation index at: https://docs.letterdrop.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Concepts

> Accounts, contacts, signals and how the fields are named.

Letterdrop watches public activity between your competitors' employees and the companies you sell to. When someone at a company interacts with one of them, that is a **signal**. The objects:

| Object | What it is |
| - | - |
| Account | A company with at least one signal: one row of the Competitor Monitoring table. Identified by `account_id`. |
| Contact | A person at an account. An *Engaged Contact* produced signals; a *Buying Committee* member is a decision-maker who did not. |
| Signal | One interaction between a contact and a competitor's employee. Each engaged contact carries their `signals`. |
| Competitor | A company you told Letterdrop to watch. `competitor_name` on a signal, `account_competitors` on an account. |
| CRM | Your HubSpot or Salesforce. Every `crm_` field is read from it; nothing else is. |

An account has contacts; an engaged contact has signals. `/accounts` returns accounts with their contacts nested; `/contacts` returns one row per person with the account flattened alongside, the way the webhook sends each signal.

### Field prefixes

A field's prefix says what it describes and where it comes from:

| Prefix | Group | Meaning |
| - | - | - |
| `account_` | Account | What we infer about the company from its signals: competitors, buying-cycle stage, priority, ICP fit. |
| `company_` | Company | Firmographics: name, domain, size, industry, HQ country. |
| `contact_` | Contact | The person: name, title, social profile URL, role. |
| `signal_` | Signal | One interaction with a competitor's employee, and when it happened. |
| `competitor_` | Competitor | Which competitor, and which of its people (by title). |
| `crm_` | CRM | Facts read from your CRM: the account record, owner, customer status, opportunities, custom fields. |
| `outreach_` | Outreach | What your team did: contacted, replied, attribution. |
| `recommended_` | Recommended | How we suggest reaching out: email, social, call. |

### Key terms

| Term | Meaning |
| - | - |
| Freshness | `signal_freshness`: **Recent** was observed since monitoring began. **Historic** is a relationship that existed before monitoring began, so its real date is unknown (`signal_date` is empty and `signal_collected_date` is when we found it). **Stale** means the account's signals have aged past your sales cycle. |
| Priority | `account_priority`: High, Medium or Nurture, as the table shows it. It belongs to the account, so every signal on an account has the same priority. The webhook calls it `signal_priority`. |
| Cycle stage | `account_competitor_cycle_stage`: where we infer the account is in a buying cycle with a competitor. It is an inference from public signals, not CRM data; `account_competitor_cycle_reason` says why. |
| ICP fit | `account_icp_fit`: the account matches your ideal customer profile, learned from your closed-won customers. |

### Values

Values are the webhook's: labels in Title Case (`"Recent"`, `"High"`, `"Early Stage"`), dates as `YYYY-MM-DD` (fields ending `_at` are full ISO 8601 timestamps), countries as ISO 3166-1 alpha-2, and `account_competitors` as one comma-joined string. A text field with nothing to say is `""`, not null; fields that can be null say so.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.