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

# Push Sales Activities

> Push call and email activities from your system into Recotap

`POST /sales-activities`

Pushes sales activities and their associated contacts into Recotap. Max 50 activities per request. This endpoint is **create-only**. A duplicate `externalActivityId` is returned as `failed`. Returns HTTP `200` regardless of per-item outcome.

Only `call` and `email` activity types are processed. Items with any other `activityType` value are returned as `skipped` in the results.

```bash theme={null}
curl -X POST "https://eapi.recotap.com/api/v1/sales-activities" \
  -H "X-Api-Key: your-api-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "activities": [
      {
        "externalActivityId": "call-001",
        "activityType":       "call",
        "occurredAt":         "2026-04-22T10:30:00Z",
        "domain":             "acme.com",
        "accountName":        "Acme Corp",
        "ownerEmail":         "jane@yourcompany.com",
        "ownerName":          "Jane Smith",
        "ownerId":            "rep-123",
        "callTitle":          "Discovery call",
        "durationMinutes":    30,
        "outcome":            "Connected",
        "direction":          "outbound",
        "from": {
          "name":  "Jane Smith",
          "email": "jane@yourcompany.com"
        },
        "contacts": [
          {
            "email":             "john@acme.com",
            "externalContactId": "contact-456",
            "name":              "John Doe",
            "title":             "VP of Engineering",
            "department":        "Engineering",
            "seniority":         "VP",
            "phone":             "+1 415 555 0101",
            "linkedinUrl":       "https://linkedin.com/in/johndoe"
          }
        ]
      }
    ]
  }'
```

**Request body**

| Field        | Type  | Required | Description                    |
| ------------ | ----- | -------- | ------------------------------ |
| `activities` | array | Yes      | Min 1, max 50 activity objects |

**Activity object**

| Field                | Type   | Required | Description                                                                                        |
| -------------------- | ------ | -------- | -------------------------------------------------------------------------------------------------- |
| `externalActivityId` | string | Yes      | Your system activity ID — used for deduplication e.g. `"act-001"`                                  |
| `activityType`       | string | Yes      | `call` or `email`. Any other value returns the item as `skipped`.                                  |
| `occurredAt`         | string | Yes      | ISO 8601 datetime e.g. `"2026-04-22T10:30:00Z"`                                                    |
| `domain`             | string | Yes      | Account domain e.g. `"acme.com"` — links activity to a Recotap account                             |
| `ownerEmail`         | string | Yes      | Email of the rep who made the call or sent the email e.g. `"jane@yourcompany.com"`                 |
| `contacts`           | array  | Yes      | Min 1 — people involved in this activity                                                           |
| `accountName`        | string | No       | Company name e.g. `"Acme Corp"`                                                                    |
| `subject`            | string | No       | Activity title or email subject e.g. `"Follow up on our call"`                                     |
| `ownerName`          | string | No       | Rep's full name e.g. `"Jane Smith"`                                                                |
| `ownerId`            | string | No       | Rep's owner ID in your system e.g. `"rep-123"`                                                     |
| `from`               | object | No       | Sender info — `{ name?, email? }` e.g. `{ "name": "Jane Smith", "email": "jane@yourcompany.com" }` |

**Call-specific fields** (only relevant when `activityType` is `call`)

| Field             | Type   | Required | Description                                     |
| ----------------- | ------ | -------- | ----------------------------------------------- |
| `callTitle`       | string | No       | Call title shown in the activity feed           |
| `durationMinutes` | number | No       | Duration of the call in minutes                 |
| `outcome`         | string | No       | e.g. `Connected`, `Left voicemail`, `No answer` |
| `direction`       | string | No       | `inbound` or `outbound`                         |

**Email-specific fields** (only relevant when `activityType` is `email`)

| Field        | Type   | Required | Description                          |
| ------------ | ------ | -------- | ------------------------------------ |
| `openCount`  | number | No       | Number of times the email was opened |
| `clickCount` | number | No       | Number of link clicks                |

**Contact object**

| Field               | Type   | Required | Description                                              |
| ------------------- | ------ | -------- | -------------------------------------------------------- |
| `email`             | string | Yes      | Deduplication key for the contact e.g. `"john@acme.com"` |
| `externalContactId` | string | No       | Your system contact ID e.g. `"contact-456"`              |
| `name`              | string | No       | Contact's full name e.g. `"John Doe"`                    |
| `title`             | string | No       | Job title e.g. `"VP of Engineering"`                     |
| `department`        | string | No       | e.g. `"Engineering"`                                     |
| `seniority`         | string | No       | e.g. `"VP"`, `"Director"`, `"Manager"`, `"IC"`           |
| `phone`             | string | No       | e.g. `"+1 415 555 0101"`                                 |
| `linkedinUrl`       | string | No       | e.g. `"https://linkedin.com/in/johndoe"`                 |

**Call example**

```json theme={null}
{
  "activities": [
    {
      "externalActivityId": "call-001",
      "activityType":       "call",
      "occurredAt":         "2026-04-22T10:30:00Z",
      "domain":             "acme.com",
      "accountName":        "Acme Corp",
      "ownerEmail":         "jane@yourcompany.com",
      "ownerName":          "Jane Smith",
      "ownerId":            "rep-123",
      "callTitle":          "Discovery call",
      "durationMinutes":    30,
      "outcome":            "Connected",
      "direction":          "outbound",
      "from": {
        "name":  "Jane Smith",
        "email": "jane@yourcompany.com"
      },
      "contacts": [
        {
          "email":             "john@acme.com",
          "externalContactId": "contact-456",
          "name":              "John Doe",
          "title":             "VP of Engineering",
          "department":        "Engineering",
          "seniority":         "VP",
          "phone":             "+1 415 555 0101",
          "linkedinUrl":       "https://linkedin.com/in/johndoe"
        }
      ]
    }
  ]
}
```

**Email example**

```json theme={null}
{
  "activities": [
    {
      "externalActivityId": "email-001",
      "activityType":       "email",
      "occurredAt":         "2026-04-23T08:15:00Z",
      "domain":             "acme.com",
      "accountName":        "Acme Corp",
      "ownerEmail":         "jane@yourcompany.com",
      "ownerName":          "Jane Smith",
      "ownerId":            "rep-123",
      "subject":            "Follow up on our call",
      "openCount":          3,
      "clickCount":         1,
      "from": {
        "name":  "Jane Smith",
        "email": "jane@yourcompany.com"
      },
      "contacts": [
        {
          "email":             "john@acme.com",
          "externalContactId": "contact-456",
          "name":              "John Doe",
          "title":             "VP of Engineering",
          "department":        "Engineering",
          "seniority":         "VP",
          "phone":             "+1 415 555 0101",
          "linkedinUrl":       "https://linkedin.com/in/johndoe"
        }
      ]
    }
  ]
}
```

**Response `data`**

```json theme={null}
{
  "results": [
    { "externalActivityId": "act-001", "status": "created" },
    { "externalActivityId": "act-002", "status": "failed",  "error": "Activity with externalActivityId 'act-002' already exists." },
    { "externalActivityId": "act-003", "status": "skipped", "reason": "Only call and email activity types are supported" }
  ],
  "summary": { "total": 3, "created": 1, "failed": 1, "skipped": 1 }
}
```
