request_profile_deletion
Remove customer profiles from the Klaviyo platform by specifying an email, phone number, or profile ID using this tool. Ensures compliance with data deletion requests.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| No | Email of the profile to delete | ||
| phone_number | No | Phone number of the profile to delete | |
| profile_id | No | ID of the profile to delete |
Implementation Reference
- src/tools/data-privacy.js:13-44 (handler)The handler function that constructs the payload for a data privacy deletion job and calls the Klaviyo API to submit it. Handles email, phone_number, or profile_id.async (params) => { try { const payload = { data: { type: "data-privacy-deletion-job", attributes: {} } }; if (params.email) { payload.data.attributes.email = params.email; } if (params.phone_number) { payload.data.attributes.phone_number = params.phone_number; } if (params.profile_id) { payload.data.attributes.profile_id = params.profile_id; } const result = await klaviyoClient.post('/data-privacy-deletion-jobs/', payload); return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] }; } catch (error) { return { content: [{ type: "text", text: `Error requesting profile deletion: ${error.message}` }], isError: true }; } },
- src/tools/data-privacy.js:8-12 (schema)Zod schema for the tool's input parameters: optional email, phone_number, or profile_id.{ email: z.string().email().optional().describe("Email of the profile to delete"), phone_number: z.string().optional().describe("Phone number of the profile to delete"), profile_id: z.string().optional().describe("ID of the profile to delete") },
- src/tools/data-privacy.js:4-47 (registration)Function that registers the 'request_profile_deletion' tool on the MCP server, including schema, handler, and description.export function registerDataPrivacyTools(server) { // Request profile deletion server.tool( "request_profile_deletion", { email: z.string().email().optional().describe("Email of the profile to delete"), phone_number: z.string().optional().describe("Phone number of the profile to delete"), profile_id: z.string().optional().describe("ID of the profile to delete") }, async (params) => { try { const payload = { data: { type: "data-privacy-deletion-job", attributes: {} } }; if (params.email) { payload.data.attributes.email = params.email; } if (params.phone_number) { payload.data.attributes.phone_number = params.phone_number; } if (params.profile_id) { payload.data.attributes.profile_id = params.profile_id; } const result = await klaviyoClient.post('/data-privacy-deletion-jobs/', payload); return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] }; } catch (error) { return { content: [{ type: "text", text: `Error requesting profile deletion: ${error.message}` }], isError: true }; } }, { description: "Request deletion of a profile for data privacy compliance" } ); }
- src/server.js:44-44 (registration)Top-level call to register the data privacy tools (including request_profile_deletion) on the main MCP server instance.registerDataPrivacyTools(server);