Skip to main content
Glama

mcp-google-sheets

create-transaction.ts5.36 kB
import { tarventAuth } from '../..'; import { createAction, Property } from '@activepieces/pieces-framework'; import { makeClient, tarventCommon } from '../common'; import { propsValidation } from '@activepieces/pieces-common'; import { z } from 'zod'; export const createTransaction = createAction({ auth: tarventAuth, name: 'tarvent_create_transaction', displayName: 'Send A Transactional Email', description: 'Sends a transactional email. NOTE: This will use your email API credits.', props: { groupName: tarventCommon.txGroupName(false, 'Choose an existing group name or use "Custom" to enter a new group name. This name is used for reporting.'), fromEmail: Property.ShortText({ displayName: 'From email', description: 'Enter who this transaction is from.', required: true, defaultValue: '' }), fromName: Property.ShortText({ displayName: 'From name', description: 'Enter a friendly name for who this transaction is from.', required: false, defaultValue: '' }), toEmail: Property.ShortText({ displayName: 'To email', description: 'Enter the email that the transaction should be sent to.', required: true, defaultValue: '' }), ccEmail: Property.Array({ displayName: 'CC Emails', description: 'Enter emails that this transaction should be CC\'d to.', properties: { email: Property.ShortText({ displayName: 'Email', required: false, defaultValue: '' }) }, required: false, defaultValue: [], }), bccEmail: Property.Array({ displayName: 'BCC Emails', description: 'Enter emails that this transaction should be BCC\'d to.', properties: { email: Property.ShortText({ displayName: 'Email', required: false, defaultValue: '' }) }, required: false, defaultValue: [], }), subject: Property.ShortText({ displayName: 'Subject line', description: 'Enter a subject line for the transaction.', required: true, defaultValue: '' }), replyToEmail: Property.ShortText({ displayName: 'Reply to email', description: 'Enter the email that the replies should go to.', required: true, defaultValue: '' }), replyToName: Property.ShortText({ displayName: 'Reply to name', description: 'Enter a friendly name the replies should go to.', required: false, defaultValue: '' }), variables: Property.Object({ displayName: 'Variables', description: 'NOTE: Variable names (first column) can have Letters, numbers, underscores, and hyphens. Any other characters in the first column only will be removed.', required: false, defaultValue: '', }), templateId: tarventCommon.templateId(false, 'Select which template you\'d like to used for this transaction.'), mimeType: Property.StaticDropdown({ displayName: 'Message type', description: 'If "Template" is specified, this will be ignored..', required: false, options: { options: [ { label: 'HTML', value: 'HTML', }, { label: 'Plain text', value: 'TEXT', }, ], } }), content: Property.LongText({ displayName: 'Content', description: 'To merge in variables, you must use the syntax [[Tx.VariableData.VariableName]] (ex. Variable name is FirstName, merge syntax would be [[Tx.VariableData.FirstName]]) If "Template" is specified, this will be ignored.', required: false, }), ignoreSuppressCheck: Property.StaticDropdown({ displayName: 'Ignore suppression filters', description: 'Select if the suppression filters on your account should be ignored for this transaction.', required: true, options: { options: [ { label: 'Ignore', value: 'true', }, { label: 'Do not ignore', value: 'false', }, ], }, defaultValue: 'false' }) }, async run(context) { const { groupName, fromEmail, fromName, toEmail, ccEmail, bccEmail, subject, replyToEmail, replyToName, variables, templateId, mimeType, content, ignoreSuppressCheck } = context.propsValue; await propsValidation.validateZod(context.propsValue, { groupName: z.string().max(100, 'Group name has to be equal to or less than 100 characters.').optional(), fromEmail: z.string().max(320, 'From email has to be equal to or less than 320 characters.'), fromName: z.string().max(255, 'From name has to be equal to or less than 255 characters.').optional(), subject: z.string().max(500, 'Subject has to be equal to or less than 500 characters.'), replyToEmail: z.string().max(320, 'Reply to email has to be equal to or less than 320 characters.'), replyToName: z.string().max(255, 'Reply to name has to be equal to or less than 255 characters.').optional(), }); const client = makeClient(context.auth); return await client.createTransaction(groupName, fromEmail, fromName, toEmail, ccEmail, bccEmail, subject, replyToEmail, replyToName, variables, templateId, mimeType, content, ignoreSuppressCheck); }, });

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/activepieces/activepieces'

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