# Create Or Update Contact — SegMetrics

> Create or update a contact. See documentation here

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

## Description

Create or update a contact. [See documentation here](https://developers.segmetrics.io/#contacts)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `integrationId` | `string` | Yes | The ID of the Custom CRM integration from your Account Integrations page. Click to configure your Custom CRM integration, then copy the ID from the URL of the configuration page. For example, if the URL of the configuration page is https://app.segmetrics.io/XXX/integration/configure/1234, the integration ID is 1234. |
| `email` | `string` | Yes | Email address of the contact |
| `firstName` | `string` | Yes | First name of the contact |
| `lastName` | `string` | Yes | Last name of the contact |

## 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": "segmetrics",
      },
    },
  },
)

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: "segmetrics-create-or-update-contact",
  arguments: {
    integrationId: "Integration ID",
    email: "Contact's Email",
  },
})
```

**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: "segmetrics-create-or-update-contact",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    segmetrics: { authProvisionId: "apn_xxxxxxx" },
    integrationId: "Integration ID",
    email: "Contact's Email",
  },
})

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": "segmetrics-create-or-update-contact",
    "configured_props": {
      "segmetrics": { "authProvisionId": "apn_xxxxxxx" },
      "integrationId": "Integration ID",
      "email": "Contact'\''s Email"
    }
  }'
```

---

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