Skip to main content
Glama

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

NameRequiredDescriptionDefault
emailNoEmail of the profile to delete
phone_numberNoPhone number of the profile to delete
profile_idNoID of the profile to delete

Input Schema (JSON Schema)

{ "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "email": { "description": "Email of the profile to delete", "format": "email", "type": "string" }, "phone_number": { "description": "Phone number of the profile to delete", "type": "string" }, "profile_id": { "description": "ID of the profile to delete", "type": "string" } }, "type": "object" }

Implementation Reference

  • 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 }; } },
  • 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") },
  • 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);

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ivan-rivera-projects/Klaviyo-MCP-Server-Enhanced'

If you have feedback or need assistance with the MCP directory API, please join our Discord server