# Connect ConnectMachine to Zapier

Send every new and updated contact from ConnectMachine straight into the apps you already use, and write contacts back from those apps. This guide walks through connecting your account, the triggers and actions you get, the fields you can map, and how to fix the problems people run into most.

## Before you start

The ConnectMachine app on Zapier gives you three triggers and two actions for your contacts. Triggers are instant, so a Zap runs within seconds of a contact changing instead of waiting for a polling interval.

**Triggers**: New, Updated, and Deleted Contact  
**Actions**: Create Contact and Update Contact  
**Trigger speed**: Instant. No polling delay  
**Sign-in**: No password or API key needed

### You will need

- A ConnectMachine account with onboarding finished.
- Zapier access on your ConnectMachine plan: a paid subscription, a seat on an organization license, or an active Premium trial.
- A Zapier account. Zapier’s free tier includes 100 tasks per month, which is enough for most single-step Zaps.

## Connect your account

You connect ConnectMachine to Zapier once. After that, every Zap you build can reuse the same connection.

1. In Zapier, create a Zap and search for **ConnectMachine**.
2. Pick a ConnectMachine trigger or action, then click **Sign in**.
3. ConnectMachine opens a consent page. Sign in with Google or with a code sent to your email. You are never asked for a password.
4. Review the permissions you are granting, then click **Approve and continue**.
5. Zapier returns to the Zap editor with your ConnectMachine account connected and ready to use.

### What you are approving

- Read your account details
- Read contacts and networks
- Create and update contacts
- Manage its own trigger subscriptions

**Disconnecting**

To revoke access, open _My Apps_ in Zapier, find ConnectMachine, and remove the connection. Zaps that use it stop running until you connect again. Reconnect the same way if your plan changes or a security check closes the connection.

## Triggers and actions

Triggers start a Zap when something happens in ConnectMachine. Actions let another app write into ConnectMachine.

### Triggers

#### New Contact

A contact is added to your ConnectMachine account, whether you scanned a card, typed it in, or imported it.

#### Updated Contact

Any detail on an existing contact changes. Zapier receives the contact’s current values, not just the changed field.

#### Deleted Contact

A contact is removed. Single deletes, bulk deletes, delete all, and merges can all fire it. Zapier receives one item per deleted contact, including the details captured just before deletion so you can find the matching row in another app.

### Actions

#### Create Contact

Adds a person or business contact to ConnectMachine from another app. First Name is required for every new contact. Company is optional and can be used with Contact Type set to Business. If you leave Network blank, the contact goes to your default network.

#### Update Contact

Changes fields on a contact that already exists. Contact ID is required: pick a recent contact from the dropdown, or choose Custom to map an ID from an earlier Zap step.

## Build your first Zap

This walkthrough keeps a Google Sheet and ConnectMachine in step with each other. The same pattern works for any of the apps Zapier connects to.

### Choose your trigger

Add ConnectMachine as the first step and pick a trigger event. This example uses Updated Contact, so the Zap runs every time a contact’s details change.

### Pull a sample record

Click Test to load a sample contact. Samples let you map fields before a real event arrives.

### Check what the trigger gives you

Expand the sample to see every field you can map into later steps: names, company, job title, primary email and phone, labeled values, locations, tags, and timestamps.

### Map fields into the next app

Add your second app and drag ConnectMachine fields into it.

### Handle deletions

Use the Deleted Contact trigger to keep other systems tidy. Look the contact up by ID or email in the destination app, then clear or archive the matching record.

## Fields you can map

### What a trigger gives you

Every trigger hands Zapier the full contact record, so you can map any of these into a later step.

| Field                      | What it holds |  
|----------------------------|---------------|  
| Item ID                    | A stable ID for the event, so your Zap never runs twice for the same change. |  
| Contact ID                 | The ConnectMachine contact ID. Map this into Update Contact or store it in your other app. |  
| Event Type                 | Whether the contact was created, updated, or deleted. |  
| Source                     | Where the change came from. A value of zapier means one of your own Zaps made it. |  
| Contact Type               | Person or business. |  
| First Name, Last Name, Company, Job Title | The core identity fields. |  
| Label, Notes, Bio          | Your ConnectMachine label, private notes, and contact bio. |  
| Primary Email, Primary Phone, Website | The main contact values, ready to map straight into most apps. |  
| Emails, Phones, Websites, Socials, Custom | Labeled lists. Each entry has a label and a value. |  
| Address, Where We Met      | Street, city, state, postcode, country, and coordinates. |  
| Tags                       | Tags on the contact, including event tags.|  
| Created At, Updated At, Deleted At | Timestamps in UTC.|

### What the actions accept

Create Contact and Update Contact take the same set of fields. Fill in only the ones you want to set.

| Field                      | Required    | Notes  |  
|----------------------------|-------------|--------|  
| Contact ID                 | Update only | Pick a recent contact from the dropdown, or choose Custom to map an ID from an earlier step. |  
| Contact Type               | Optional     | Person or business. Defaults to person. |  
| First Name                 | Create only | Required when creating any contact. |  
| Company                    | Optional     | Add a company name; use Contact Type Business for business contacts. |  
| Last Name, Job Title, Label | Optional     | Plain text fields. |  
| Notes, Bio                | Optional     | Notes stay private to your account. |  
| Network                    | Optional     | Leave blank to use your default network. |  
| Primary Email, Primary Phone, Website | Optional     | Updates the current primary value, or creates one if there is none. |  
| Emails, Phones, Websites, Socials, Custom | Optional | Up to five entries each. Every entry needs a label and a value. |  
| Address, Where We Met      | Optional     | Street, city, state, postcode, country, and coordinates. Where We Met also takes a place name.

### Validation rules

- Email values must be valid email addresses.
- Website, social, and map links must start with http:// or https://.
- Latitude must be between -90 and 90. Longitude must be between -180 and 180.
- Blank fields are ignored. Update Contact never clears a value by leaving the field empty.
- The contact and network you pick must belong to the connected ConnectMachine account.

## Prevent recursive Zaps

When a Zap creates or updates a ConnectMachine contact, that change fires the New Contact or Updated Contact trigger like any other change. If the same Zap listens for those triggers, it can set itself off again in a loop.

## Troubleshooting

Most problems come down to the connection, your plan, or a value that failed validation. Find the symptom below:

- Zapier says your plan does not include Zapier access
- A step fails asking you to reconnect, or says a permission is missing
- The trigger stopped firing and Zapier reports a 410 Gone
- An action reports that the contact could not be found
- An action rejects an email address or a URL
- You hit the limit for active ConnectMachine Zaps
- Testing the trigger returns no records
- Sign-in keeps failing

## ConnectMachine API reference for Zapier

This reference documents every ConnectMachine API endpoint called by the native integration.

### Authentication and scopes

The integration uses OAuth 2.0 authorization code flow with PKCE. Protected endpoints require `Authorization: Bearer <access_token>`. Zapier requests the scopes `user:read`, `contacts:read`, `contacts:write`, and `webhooks:write`.

### Endpoints

#### OAuth 2.0 with PKCE

- GET `/api/v1/oauth/authorize`
- POST `/api/v1/oauth/token`
- GET `/api/v1/oauth/me`

#### Instant trigger subscriptions

- POST `/api/v1/zapier/subscriptions`
- DELETE `/api/v1/zapier/subscriptions/{id}`

#### Contact actions

- POST `/api/v1/zapier/contacts`
- PATCH `/api/v1/zapier/contacts/{id}`

### Contact mutation JSON

Create Contact and Update Contact accept JSON with the following fields. Unknown fields are ignored. Blank values do not clear existing data.

```json
{
  "first_name": "John",
  "last_name": "Doe",
  "company": "Example Inc.",
  "emails": [{"label": "work", "value": "john.doe@example.com"}],
  "phones": [{"label": "mobile", "value": "+1234567890"}]
}
```

### Errors

Errors use a consistent JSON body. A `429` response also includes a `Retry-After` header.

```json
{
  "error": "invalid_request",
  "error_description": "Invalid contact payload"
}
```

| Status Codes | Meaning |
|---------------|---------|
| 400           | invalid_request, invalid_event_type, ... |
| 401           | invalid_client, invalid_grant, ... |
| 403           | insufficient_scope, onboarding_required, ... |
| 404           | not_found |
| 409           | conflict |
| 429           | subscription_limit, rate_limited |
| 503           | server_error, temporarily_unavailable |

## Still stuck?

Send us the name of your Zap and the error Zapier showed you, and we will take a look.

[hi@connectmachine.ai](mailto:hi@connectmachine.ai)
