# Create Or Update Contact — Gist

> Create or update a contact in Gist See docs

- Key: `gist-create-or-update-contact`
- Type: Action (Write)
- Version: 0.0.2
- App: Gist (`gist`) — https://pipedream.com/apps/gist.md
- This page (HTML): https://pipedream.com/apps/gist/actions/create-or-update-contact
- Hints: destructive · open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/gist/actions/create-or-update-contact/create-or-update-contact.mjs

## Description

Create or update a contact in Gist [See docs](https://developers.getgist.com/api/#create-or-update-a-contact)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `email` | `string` | No | The contact's email address. Required on create. Required if no user_id is supplied on update. |
| `userId` | `string` | No | A unique string identifier for the user. It is required to create Contact of type User. Required on create. Required if no email is supplied. Options are loaded from the connected account. |
| `name` | `string` | No | The full name of the contact |
| `phone` | `string` | No | The contact number of the contact |
| `signedUpAt` | `string` | No | The time the contact signed up |
| `lastSeenIp` | `string` | No | The last IP address the contact visited your website from |
| `lastSeenUserAgent` | `string` | No | The last contact agent the contact was seen using |
| `customProperties` | `object` | No | A JSON object containing the contact's custom properties. E.g. { "name": "John Doe" } |
| `unsubscribedFromEmails` | `boolean` | No | If the contact has unsubscribed from emails or not |
| `tagId` | `string[]` | No | The tag that will be added Options are loaded from the connected account. |

## Run it

**MCP**

```ts
import { Client } from "@modelcontextprotocol/sdk/client/index.js"
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const accessToken = await pd.rawAccessToken

const transport = new StreamableHTTPClientTransport(
  new URL("https://remote.mcp.pipedream.net/v3"),
  {
    requestInit: {
      headers: {
        Authorization: `Bearer ${accessToken}`,
        "x-pd-project-id": process.env.PIPEDREAM_PROJECT_ID!,
        "x-pd-environment": "production",
        "x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
        "x-pd-app-slug": "gist",
      },
    },
  },
)

const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)

const { tools } = await mcp.listTools()

// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
  name: "gist-create-or-update-contact",
  arguments: {
    email: "Email",
    userId: "User Id",
  },
})
```

**TypeScript**

```ts
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const result = await pd.actions.run({
  id: "gist-create-or-update-contact",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    gist: { authProvisionId: "apn_xxxxxxx" },
    email: "Email",
    userId: "User Id",
  },
})

console.log(result)
```

**cURL**

```bash
curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
  -H "Content-Type: application/json" \
  -H "X-PD-Environment: production" \
  -H "Authorization: Bearer {access_token}" \
  -d '{
    "external_user_id": "{external_user_id}",
    "id": "gist-create-or-update-contact",
    "configured_props": {
      "gist": { "authProvisionId": "apn_xxxxxxx" },
      "email": "Email",
      "userId": "User Id"
    }
  }'
```

---

- App: https://pipedream.com/apps/gist.md · All apps: https://pipedream.com/apps
