Givebutter ACTION
Update Contact
Update an existing Givebutter contact, returning the updated contact object. Set only the fields you want to change. Use List Contacts first to find the contact ID. Note that Givebutter validates this as a full update — individual contacts require
first_name and last_name, and company contacts require company_name, even when those values are not changing — so this action reads the contact first and re-sends its existing name and company values automatically. See the documentation- Action
- Writes data
- API key
- SDK
- MCP
IMPLEMENTATION
Call this tool
Connect a user's Givebutter account once, then configure and run Update Contact from your backend or agent.
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: "givebutter-update-contact",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
givebutter: { authProvisionId: "apn_xxxxxxx" },
contactId: "Contact ID",
firstName: "First Name",
},
})
console.log(result)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": "givebutter-update-contact",
"configured_props": {
"givebutter": { "authProvisionId": "apn_xxxxxxx" },
"contactId": "Contact ID",
"firstName": "First Name"
}
}'// accessToken: mint a short-lived token with the Connect SDK — see the MCP guide
const transport = new StreamableHTTPClientTransport(
new URL("https://remote.mcp.pipedream.net/v3"),
{
requestInit: {
headers: {
Authorization: `Bearer ${accessToken}`,
"x-pd-project-id": "{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": "givebutter",
},
},
},
)
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: "givebutter-update-contact",
arguments: {
contactId: "Contact ID",
firstName: "First Name",
},
})SCHEMA
Inputs
Pipedream supplies the connected account. Your application provides the operation-specific values below. Dynamic inputs are resolved against that user's account.
| Property | Type | Description |
|---|---|---|
contactId Contact ID | string | The ID of the contact to update (an integer identifier, e.g. 12345). Run List Contacts to find valid contact IDs. Required |
firstName First Name | string | Contact's first name (max 255 chars). Maps to the API first_name field. Optional |
lastName Last Name | string | Contact's last name (max 255 chars). Maps to the API last_name field. Optional |
email Email | string | Email address to set on the contact, submitted in the API emails array. Example: jane.updated@example.com. Becomes the contact's primary email unless Email Is Primary is set to false. Optional |
emailIsPrimary Email Is Primary | boolean | Whether Email becomes the contact's primary email address (the API is_primary flag). Defaults to true; set to false to add it as a secondary address, leaving the existing primary in place. Ignored when Email is not set. Optional |
phone Phone | string | Phone number to set on the contact, submitted in the API phones array. Example: +15555550100. Becomes the contact's primary phone unless Phone Is Primary is set to false. Optional |
phoneIsPrimary Phone Is Primary | boolean | Whether Phone becomes the contact's primary phone number (the API is_primary flag). Defaults to true; set to false to add it as a secondary number, leaving the existing primary in place. Ignored when Phone is not set. Optional |
companyName Company Name | string | Company name (max 255 chars). Maps to the API company_name field. Optional |
note Note | string | Optional note to set on the contact. Optional |
tags Tags | string[] | Optional list of tag strings to set on the contact (max 64 tags), replacing the contact's existing tags. Example: ["vip", "newsletter"]. Optional |
REFERENCE
Tool details
Behavior hints are published with the component in the Pipedream registry and surface as MCP tool annotations, so an agent can reason about a tool before it calls it.
- Registry key
- givebutter-update-contact
- Version
- 0.0.2
- App
- Givebutter
- Authentication
- API key
- Read-only
- No
- Destructive
- No
- Open world
- Yes
- Source
- View on GitHub ↗