home / skills / aviz85 / claude-skills-library / get-contact

This skill finds contact details by name across local sources and returns email and phone to streamline outreach.

npx playbooks add skill aviz85/claude-skills-library --skill get-contact

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

Files (1)
skill.md
2.1 KB
---
name: get-contact
description: "Find contact details by name. Searches local contacts/CRM and returns email/phone. Use before scheduling meetings or sending messages when you need contact info."
version: "1.0.0"
author: aviz85
tags:
  - contacts
  - crm
  - utility
usedBy:
  - zoom-meeting
  - whatsapp
  - gmail
---

# Get Contact

Find contact details (email, phone) by name search.

## Sources

Configure your contact sources. Examples:
- **Local JSON** - `~/contacts.json` or your CRM data file
- **Google Contacts** - via People API (future)
- **Any CRM** - adapt the search to your system

## Usage

When you need contact info:

1. Search contacts for name (partial match, case insensitive)
2. If **0 results** → tell user "not found, please provide email/phone"
3. If **1 result** → confirm with user: "Found [name] - [email]. Is this correct?"
4. If **multiple results** → ask user to choose: "Found multiple: 1) Name A 2) Name B"

## IMPORTANT

**Always confirm with user before using contact info.** Common names (יוסי, דוד, John, David) may have multiple people or user may mean someone not in contacts.

## Search Example (JSON)

```bash
# Search by name in contacts file
jq '.contacts[] | select(.name | test("QUERY"; "i")) | {name, email, phone}' ~/contacts.json
```

## Response Format

Return to calling skill:
```json
{
  "found": true,
  "count": 1,
  "contact": {
    "name": "John Smith",
    "email": "[email protected]",
    "phone": "+1234567890"
  }
}
```

Or if multiple:
```json
{
  "found": true,
  "count": 2,
  "contacts": [
    {"name": "John Smith", "email": "john.s@...", "phone": "..."},
    {"name": "John Doe", "email": "john.d@...", "phone": "..."}
  ]
}
```

## Configuration

Create a contacts file or configure your data source path:

```json
// ~/contacts.json
{
  "contacts": [
    {
      "name": "John Smith",
      "email": "[email protected]",
      "phone": "+1234567890"
    }
  ]
}
```

Update the search path in the skill to match your setup.

## Integration

Other skills (zoom-meeting, whatsapp) use this skill to lookup contacts. If this skill isn't available, those skills will ask the user for contact details directly.

Overview

This skill finds contact details (email and phone) by name across your configured local contacts or CRM. It performs partial, case-insensitive name searches and returns matching entries for confirmation. Use it to quickly retrieve contact information before scheduling meetings or sending messages.

How this skill works

The skill searches your configured data source (for example a local JSON contacts file) for names matching the query using case-insensitive partial matching. If zero results are found, it prompts for manual contact details; if one result is found it asks you to confirm before using the info; if multiple matches are found it lists them and asks you to choose. The skill returns a structured JSON payload indicating found status, count, and contact(s).

When to use it

  • Preparing or scheduling meetings when you need attendee email or phone
  • Composing messages or emails and needing the recipient’s contact info
  • Resolving ambiguous names when multiple people share the same name
  • Automating integrations that require validated contact fields (email/phone)

Best practices

  • Maintain and secure a single canonical contacts file or CRM endpoint for reliable results
  • Use partial and case-insensitive matching but always require user confirmation before sending messages
  • Keep contact records normalized (email, international phone format) to avoid lookup errors
  • Add unique identifiers (company, title, location) to contacts to disambiguate common names
  • Update the configured data path if you move or rename your contacts file

Example use cases

  • User types a name before creating a Zoom meeting; the skill returns the attendee email to add to the invite
  • An assistant drafts an email and needs the correct phone number to include in the signature
  • Multiple 'John Smith' entries exist; the skill lists them so the user selects the correct person
  • No match found in local contacts; the skill requests the user to provide email or phone manually

FAQ

What sources can the skill search?

Currently it supports a local JSON contacts file and can be adapted to query a CRM or external contacts API.

How does the skill handle common names with multiple matches?

It returns all matching contacts and asks the user to choose, and it never uses contact details without explicit user confirmation.