Contacts
Contacts represent journalists, editors, producers, and other individuals you interact with. Contacts can be linked to one or more outlets via the contact_outlet relationship.
create_contact
Create a new contact.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| first_name | string | Yes | First name |
| last_name | string | Yes | Last name |
| string | No | Primary email | |
| phone | string | No | Phone number |
| title | string | No | Job title |
| bio | string | No | Biography |
| is_freelance | boolean | No | Whether the contact is freelance (default: false) |
| social_links | object | No | Key-value pairs, e.g. { "twitter": "@handle", "linkedin": "url" } |
| preferences | object | No | Contact preferences as key-value pairs |
| notes | string | No | Free-form notes |
Example
json
{
"name": "create_contact",
"arguments": {
"first_name": "Sarah",
"last_name": "Chen",
"email": "sarah.chen@techcrunch.com",
"title": "Senior Reporter",
"social_links": { "twitter": "@sarahchen" }
}
}get_contact
Get a contact by ID with their outlets and opportunities.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string (UUID) | Yes | Contact ID |
Example
json
{
"name": "get_contact",
"arguments": {
"id": "550e8400-e29b-41d4-a716-446655440000"
}
}list_contacts
List contacts with optional filters.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| search | string | No | Search by name or email |
| is_freelance | boolean | No | Filter by freelance status |
| include_archived | boolean | No | Include archived contacts (default: false) |
| limit | number | No | Max results (default: 50) |
| offset | number | No | Offset for pagination (default: 0) |
Example
json
{
"name": "list_contacts",
"arguments": {
"search": "sarah",
"limit": 10
}
}update_contact
Update contact fields.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string (UUID) | Yes | Contact ID |
| first_name | string | No | First name |
| last_name | string | No | Last name |
| string | No | Primary email | |
| phone | string | No | Phone number |
| title | string | No | Job title |
| bio | string | No | Biography |
| is_freelance | boolean | No | Freelance status |
| social_links | object | No | Social link key-value pairs |
| preferences | object | No | Contact preferences |
| notes | string | No | Free-form notes |
Example
json
{
"name": "update_contact",
"arguments": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"title": "Editor-in-Chief",
"notes": "Promoted in March 2026"
}
}archive_contact
Soft-delete a contact.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string (UUID) | Yes | Contact ID |
Example
json
{
"name": "archive_contact",
"arguments": {
"id": "550e8400-e29b-41d4-a716-446655440000"
}
}restore_contact
Restore an archived contact.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string (UUID) | Yes | Contact ID |
Example
json
{
"name": "restore_contact",
"arguments": {
"id": "550e8400-e29b-41d4-a716-446655440000"
}
}link_contact_outlet
Associate a contact with an outlet. Tracks role, whether the association is current, and start date.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| contact_id | string (UUID) | Yes | Contact ID |
| outlet_id | string (UUID) | Yes | Outlet ID |
| role | string | No | Their role at this outlet |
| is_primary | boolean | No | Current (true) or historical (false). Default: true |
| start_date | string | No | Start date (YYYY-MM-DD) |
Example
json
{
"name": "link_contact_outlet",
"arguments": {
"contact_id": "550e8400-e29b-41d4-a716-446655440000",
"outlet_id": "660e8400-e29b-41d4-a716-446655440000",
"role": "Senior Reporter",
"start_date": "2024-01-15"
}
}unlink_contact_outlet
End a contact's association with an outlet. Sets end_date to today and is_primary to false. The record is preserved for historical reference.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string (UUID) | Yes | contact_outlet record ID |
Example
json
{
"name": "unlink_contact_outlet",
"arguments": {
"id": "770e8400-e29b-41d4-a716-446655440000"
}
}