Skip to content
DocsSDKContacts

Contacts

Updated Jul 2026·1 min

Manage CRM contacts: create and update records, read activity timelines, attach notes, and import in bulk.

The Contacts list with named contacts, labels, and email statuses.The Contacts list with named contacts, labels, and email statuses.

Quick example

Type-checked against @medalsocial/sdk v1.3.0 (2026-07-20). A release that changes a signature fails this page's build.

ts
import { Medal } from '@medalsocial/sdk';

const medal = new Medal(process.env.MEDAL_API_KEY as string);

// Create a contact
const { data: created } = await medal.contacts.create({
  email: 'nora@solsticecoffee.no',
  first_name: 'Nora',
  company: 'Solstice Coffee',
  status: 'lead',
});

// Read it back, add a note
const { data: contact } = await medal.contacts.get(created.id);
await medal.contacts.addNote(contact.id, { content: 'Met at the Bergen roastery tour.' });

// Bulk import
await medal.contacts.import([
  { email: 'kai@example.com', first_name: 'Kai' },
  { email: 'ida@example.com', first_name: 'Ida', status: 'prospect' },
]);

medal.contacts.list()

List contacts with cursor-based pagination and optional filters.

ts
list(options?: ListContactsOptions): Promise<PaginatedResponse<Contact>>
Added in v1.0.0

medal.contacts.create()

Create a new contact. Email must be unique in the workspace.

ts
create(input: CreateContactInput): Promise<ApiResponse<ContactCreateResult>>
Added in v1.0.0

medal.contacts.get()

Get a contact by ID.

ts
get(id: string): Promise<ApiResponse<Contact>>
Added in v1.0.0

medal.contacts.update()

Update one or more fields on a contact.

ts
update(id: string, input: UpdateContactInput): Promise<ApiResponse<ContactUpdateResult>>
Added in v1.0.0

medal.contacts.remove()

Permanently delete a contact.

ts
remove(id: string): Promise<ApiResponse<ContactRemoveResult>>
Added in v1.0.0

medal.contacts.activities()

Get the activity timeline for a contact.

ts
activities(id: string, options?: PaginationOptions): Promise<PaginatedResponse<Activity>>
Added in v1.0.0

medal.contacts.addNote()

Add a note to a contact's timeline.

ts
addNote(id: string, input: AddNoteInput): Promise<ApiResponse<ContactNoteResult>>
Added in v1.0.0

medal.contacts.import()

Bulk import contacts (max 500). Duplicates are skipped.

ts
import(contacts: ImportContactInput[]): Promise<ApiResponse<ImportContactsResult>>
Added in v1.0.0