home / skills / abdullahbeam / nexus-design-abdullah / hubspot-log-call

This skill logs a HubSpot call engagement with title, optional body and duration to streamline CRM records.

npx playbooks add skill abdullahbeam/nexus-design-abdullah --skill hubspot-log-call

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
2.3 KB
---
name: hubspot-log-call
description: "Log a call engagement in HubSpot CRM. Load when user says 'log call', 'record call', 'add call', 'call made'. Requires title, optional body and duration."
---

# Log HubSpot Call

**Specialized skill** for logging call engagements in HubSpot CRM.

## Pre-Flight Check

Before running, execute config check:
```bash
python 00-system/skills/hubspot/hubspot-master/scripts/check_hubspot_config.py --json
```

If `ai_action` is not `proceed_with_operation`, follow hubspot-connect setup guide.

---

## Usage

### Required Parameters
- `--title` - Call title (required)

### Optional Parameters
- `--body` - Call notes/summary
- `--duration` - Duration in minutes (default: 0)
- `--direction` - OUTBOUND or INBOUND (default: OUTBOUND)
- `--status` - COMPLETED, BUSY, NO_ANSWER, etc. (default: COMPLETED)

### Examples

**Log completed call:**
```bash
python 00-system/skills/hubspot/hubspot-master/scripts/log_call.py \
  --title "Discovery Call with Acme" \
  --body "Discussed requirements, timeline, and budget. Next step: send proposal." \
  --duration 30 \
  --json
```

**Log missed call:**
```bash
python 00-system/skills/hubspot/hubspot-master/scripts/log_call.py \
  --title "Follow-up attempt" \
  --status "NO_ANSWER" \
  --direction "OUTBOUND" \
  --json
```

---

## Call Status Values

| Status | Meaning |
|--------|---------|
| COMPLETED | Call connected |
| BUSY | Line busy |
| NO_ANSWER | No answer |
| FAILED | Call failed |
| CANCELED | Call canceled |

---

## Output Format

```json
{
  "id": "14772074448",
  "properties": {
    "hs_call_title": "Discovery Call with Acme",
    "hs_call_body": "Discussed requirements...",
    "hs_call_direction": "OUTBOUND",
    "hs_call_duration": "1800000",
    "hs_call_status": "COMPLETED",
    "hs_timestamp": "2025-12-13T10:00:00Z"
  }
}
```

---

## Display Format

```
✅ Call logged!
  ID: 14772074448
  Title: Discovery Call with Acme
  Direction: Outbound
  Duration: 30 minutes
  Status: Completed
  Notes: Discussed requirements, timeline...
```

---

## Error Handling

| Error | Solution |
|-------|----------|
| 401 | Invalid token - re-run setup |
| 403 | Missing `crm.objects.calls.write` scope |
| 429 | Rate limited - wait and retry |

---

## Related Skills

- `hubspot-list-calls` - List all calls
- `hubspot-get-associations` - Link call to contact

Overview

This skill logs call engagements directly into HubSpot CRM from a command or prompt. It requires a call title and accepts optional notes, duration, direction, and status so interactions are recorded accurately. It returns the HubSpot call object and a friendly display summary after a successful log.

How this skill works

Before use, run the included configuration check to ensure API credentials and scopes are valid. When invoked with the required title and optional parameters, the skill creates a call engagement via the HubSpot API and returns the created object with properties like title, body, direction, duration (ms), status, and timestamp. It surfaces common API errors and provides actionable messages for authentication, permissions, and rate limits.

When to use it

  • After completing a sales or support call to capture what was discussed.
  • When you need a record of call duration, direction, and outcome for reporting.
  • To log missed or failed call attempts for follow-up workflows.
  • When linking a call to contacts or deals in HubSpot for activity tracking.

Best practices

  • Always run the configuration check before logging calls to verify authentication and scopes.
  • Provide a concise, descriptive title and include next steps or action items in the notes.
  • Use duration in minutes; the skill converts to milliseconds for HubSpot storage.
  • Set the proper status (COMPLETED, NO_ANSWER, BUSY, etc.) to keep activity reporting accurate.
  • Handle rate limit (429) responses by retrying after a brief wait and respecting backoff.

Example use cases

  • Log a completed discovery call with notes and a 30-minute duration for the sales record.
  • Record a missed outbound follow-up attempt with status NO_ANSWER for later outreach.
  • Track inbound support calls with body notes summarizing the issue and resolution steps.
  • Add call activities before linking them to related contacts or deals for timeline context.

FAQ

What parameters are required to log a call?

Only a title is required. Notes (body), duration, direction, and status are optional.

What do I do if I get a 401 or 403 error?

401 indicates invalid credentials—re-run the configuration setup. 403 means the integration lacks the crm.objects.calls.write scope; update credentials and scopes.