Skip to main content
Glama

mcp-google-sheets

props.ts19 kB
import { Property } from '@activepieces/pieces-framework'; // Helper function to create a common set of fields const NameFields = { SALUTATION: Property.ShortText({ displayName: 'Salutation', required: false, }), FIRST_NAME: Property.ShortText({ displayName: 'First Name', required: false, }), LAST_NAME: Property.ShortText({ displayName: 'Last Name', required: false, }), TITLE: Property.ShortText({ displayName: 'Title', required: false, }), }; const ContactInfoFields = { PHONE: Property.ShortText({ displayName: 'Phone', required: false, }), PHONE_HOME: Property.ShortText({ displayName: 'Home Phone', required: false, }), PHONE_MOBILE: Property.ShortText({ displayName: 'Mobile Phone', required: false, }), PHONE_OTHER: Property.ShortText({ displayName: 'Other Phone', required: false, }), PHONE_ASSISTANT: Property.ShortText({ displayName: 'Assistant Phone', required: false, }), PHONE_FAX: Property.ShortText({ displayName: 'Fax', required: false, }), EMAIL_ADDRESS: Property.ShortText({ displayName: 'Email Address', required: false, }), }; const AddressFields = (type: 'Mail' | 'Other') => ({ [`ADDRESS_${type.toUpperCase()}_STREET`]: Property.ShortText({ displayName: `${type} Street`, required: false, }), [`ADDRESS_${type.toUpperCase()}_CITY`]: Property.ShortText({ displayName: `${type} City`, required: false, }), [`ADDRESS_${type.toUpperCase()}_STATE`]: Property.ShortText({ displayName: `${type} State`, required: false, }), [`ADDRESS_${type.toUpperCase()}_POSTCODE`]: Property.ShortText({ displayName: `${type} Postcode`, required: false, }), [`ADDRESS_${type.toUpperCase()}_COUNTRY`]: Property.ShortText({ displayName: `${type} Country`, required: false, }), }); export const contactFields = { ...NameFields, ...ContactInfoFields, ...AddressFields('Mail'), ...AddressFields('Other'), BACKGROUND: Property.LongText({ displayName: 'Background', required: false, }), OWNER_USER_ID: Property.Number({ displayName: 'Owner User ID', required: false, }), SOCIAL_LINKEDIN: Property.ShortText({ displayName: 'LinkedIn', required: false, }), SOCIAL_FACEBOOK: Property.ShortText({ displayName: 'Facebook', required: false, }), SOCIAL_TWITTER: Property.ShortText({ displayName: 'Twitter', required: false, }), DATE_OF_BIRTH: Property.ShortText({ displayName: 'Date of Birth', description: 'Format: YYYY-MM-DD', required: false, }), ASSISTANT_NAME: Property.ShortText({ displayName: 'Assistant Name', required: false, }), ORGANISATION_ID: Property.Number({ displayName: 'Organization ID', required: false, }), EMAIL_OPTED_OUT: Property.Checkbox({ displayName: 'Email Opted Out', required: false, }), }; export const leadFields = { ...NameFields, LEAD_SOURCE_ID: Property.Number({ displayName: 'Lead Source ID', required: true, }), LEAD_STATUS_ID: Property.Number({ displayName: 'Lead Status ID', required: true, }), EMAIL: Property.ShortText({ displayName: 'Email', required: false, }), EMPLOYEE_COUNT: Property.Number({ displayName: 'Employee Count', required: false, }), FAX: Property.ShortText({ displayName: 'Fax', required: false, }), INDUSTRY: Property.ShortText({ displayName: 'Industry', required: false, }), LEAD_DESCRIPTION: Property.LongText({ displayName: 'Lead Description', required: false, }), LEAD_RATING: Property.Number({ displayName: 'Lead Rating', required: false, }), MOBILE: Property.ShortText({ displayName: 'Mobile', required: false, }), OWNER_USER_ID: Property.Number({ displayName: 'Owner User ID', required: false, }), PHONE: Property.ShortText({ displayName: 'Phone', required: false, }), RESPONSIBLE_USER_ID: Property.Number({ displayName: 'Responsible User ID', required: false, }), WEBSITE: Property.ShortText({ displayName: 'Website', required: false, }), ADDRESS_STREET: Property.ShortText({ displayName: 'Street', required: false, }), ADDRESS_CITY: Property.ShortText({ displayName: 'City', required: false, }), ADDRESS_STATE: Property.ShortText({ displayName: 'State', required: false, }), ADDRESS_POSTCODE: Property.ShortText({ displayName: 'Postcode', required: false, }), ADDRESS_COUNTRY: Property.ShortText({ displayName: 'Country', required: false, }), ORGANISATION_NAME: Property.ShortText({ displayName: 'Organization Name', required: false, }), EMAIL_OPTED_OUT: Property.Checkbox({ displayName: 'Email Opted Out', required: false, }), }; // TODO: Define fields when API documentation is available export const opportunityFields = { OPPORTUNITY_NAME: Property.ShortText({ displayName: 'Opportunity Name', required: true, }), OPPORTUNITY_DETAILS: Property.LongText({ displayName: 'Opportunity Details', required: false, }), OPPORTUNITY_STATE: Property.StaticDropdown({ displayName: 'Opportunity State', required: false, options: { options: [ { label: 'Open', value: 'Open' }, { label: 'Suspended', value: 'Suspended' }, { label: 'Abandoned', value: 'Abandoned' }, { label: 'Lost', value: 'Lost' }, { label: 'Won', value: 'Won' }, ] } }), RESPONSIBLE_USER_ID: Property.Number({ displayName: 'Responsible User ID', required: false, }), CATEGORY_ID: Property.Number({ displayName: 'Category ID', required: false, }), BID_CURRENCY: Property.ShortText({ displayName: 'Bid Currency', description: '3-letter currency code (e.g., USD)', required: false, }), BID_AMOUNT: Property.Number({ displayName: 'Bid Amount', required: false, }), BID_TYPE: Property.ShortText({ displayName: 'Bid Type', description: 'e.g., "Fixed Bid", "Per Hour"', required: false, }), BID_DURATION: Property.Number({ displayName: 'Bid Duration', required: false, }), PROBABILITY: Property.Number({ displayName: 'Probability', description: 'Value from 0 to 100', required: false, }), FORECAST_CLOSE_DATE: Property.ShortText({ displayName: 'Forecast Close Date', description: 'Format: YYYY-MM-DD', required: false, }), OWNER_USER_ID: Property.Number({ displayName: 'Owner User ID', required: false, }), ORGANISATION_ID: Property.Number({ displayName: 'Organization ID', required: false, }), PIPELINE_ID: Property.Number({ displayName: 'Pipeline ID', required: false, }), STAGE_ID: Property.Number({ displayName: 'Stage ID', required: false, }), PRICEBOOK_ID: Property.Number({ displayName: 'Pricebook ID', required: false, }), }; export const organisationFields = { ORGANISATION_NAME: Property.ShortText({ displayName: 'Organisation Name', required: true, }), BACKGROUND: Property.LongText({ displayName: 'Background', required: false, }), PHONE: Property.ShortText({ displayName: 'Phone', required: false, }), PHONE_FAX: Property.ShortText({ displayName: 'Fax', required: false, }), WEBSITE: Property.ShortText({ displayName: 'Website', required: false, }), ADDRESS_BILLING_STREET: Property.ShortText({ displayName: 'Billing Street', required: false, }), ADDRESS_BILLING_CITY: Property.ShortText({ displayName: 'Billing City', required: false, }), ADDRESS_BILLING_STATE: Property.ShortText({ displayName: 'Billing State', required: false, }), ADDRESS_BILLING_POSTCODE: Property.ShortText({ displayName: 'Billing Postcode', required: false, }), ADDRESS_BILLING_COUNTRY: Property.ShortText({ displayName: 'Billing Country', required: false, }), ADDRESS_SHIP_STREET: Property.ShortText({ displayName: 'Shipping Street', required: false, }), ADDRESS_SHIP_CITY: Property.ShortText({ displayName: 'Shipping City', required: false, }), ADDRESS_SHIP_STATE: Property.ShortText({ displayName: 'Shipping State', required: false, }), ADDRESS_SHIP_POSTCODE: Property.ShortText({ displayName: 'Shipping Postcode', required: false, }), ADDRESS_SHIP_COUNTRY: Property.ShortText({ displayName: 'Shipping Country', required: false, }), SOCIAL_LINKEDIN: Property.ShortText({ displayName: 'LinkedIn', required: false, }), SOCIAL_FACEBOOK: Property.ShortText({ displayName: 'Facebook', required: false, }), SOCIAL_TWITTER: Property.ShortText({ displayName: 'Twitter', required: false, }), OWNER_USER_ID: Property.Number({ displayName: 'Owner User ID', required: false, }), }; export const projectFields = { PROJECT_NAME: Property.ShortText({ displayName: 'Project Name', required: true, }), STATUS: Property.StaticDropdown({ displayName: 'Status', required: true, options: { options: [ { label: 'Not Started', value: 'NOT STARTED' }, { label: 'In Progress', value: 'IN PROGRESS' }, { label: 'On Hold', value: 'ON HOLD' }, { label: 'Completed', value: 'COMPLETED' }, { label: 'Cancelled', value: 'CANCELLED' }, ] } }), PROJECT_DETAILS: Property.LongText({ displayName: 'Project Details', required: false, }), STARTED_DATE: Property.ShortText({ displayName: 'Started Date', description: 'Format: YYYY-MM-DD', required: false, }), COMPLETED_DATE: Property.ShortText({ displayName: 'Completed Date', description: 'Format: YYYY-MM-DD', required: false, }), OPPORTUNITY_ID: Property.Number({ displayName: 'Opportunity ID', required: false, }), CATEGORY_ID: Property.Number({ displayName: 'Category ID', required: false, }), PIPELINE_ID: Property.Number({ displayName: 'Pipeline ID', required: false, }), STAGE_ID: Property.Number({ displayName: 'Stage ID', required: false, }), OWNER_USER_ID: Property.Number({ displayName: 'Owner User ID', required: false, }), RESPONSIBLE_USER_ID: Property.Number({ displayName: 'Responsible User ID', required: false, }), }; export const taskFields = { TITLE: Property.ShortText({ displayName: 'Title', required: true, }), STATUS: Property.StaticDropdown({ displayName: 'Status', required: false, options: { options: [ { label: 'Not Started', value: 'NOT STARTED' }, { label: 'In Progress', value: 'IN PROGRESS' }, { label: 'Waiting', value: 'WAITING' }, { label: 'Completed', value: 'COMPLETED' }, { label: 'Deferred', value: 'DEFERRED' }, ] } }), DETAILS: Property.LongText({ displayName: 'Details', required: false, }), START_DATE: Property.ShortText({ displayName: 'Start Date', description: 'Format: YYYY-MM-DD', required: false, }), DUE_DATE: Property.ShortText({ displayName: 'Due Date', description: 'Format: YYYY-MM-DD', required: false, }), PERCENT_COMPLETE: Property.Number({ displayName: 'Percent Complete', required: false, }), PRIORITY: Property.Number({ displayName: 'Priority', description: '1 (Low), 2 (Normal), 3 (High)', required: false, }), COMPLETED: Property.Checkbox({ displayName: 'Completed', required: false, }), OWNER_USER_ID: Property.Number({ displayName: 'Owner User ID', required: true, }), RESPONSIBLE_USER_ID: Property.Number({ displayName: 'Responsible User ID', required: false, }), PROJECT_ID: Property.Number({ displayName: 'Project ID', required: false, }), OPPORTUNITY_ID: Property.Number({ displayName: 'Opportunity ID', required: false, }), CATEGORY_ID: Property.Number({ displayName: 'Category ID', required: false, }), MILESTONE_ID: Property.Number({ displayName: 'Milestone ID', required: false, }), }; export const eventFields = { TITLE: Property.ShortText({ displayName: 'Title', required: true, }), LOCATION: Property.ShortText({ displayName: 'Location', required: false, }), START_DATE_UTC: Property.ShortText({ displayName: 'Start Date (UTC)', description: 'Format: YYYY-MM-DDTHH:MM:SSZ', required: true, }), END_DATE_UTC: Property.ShortText({ displayName: 'End Date (UTC)', description: 'Format: YYYY-MM-DDTHH:MM:SSZ', required: true, }), ALL_DAY: Property.Checkbox({ displayName: 'All Day', required: false, }), DETAILS: Property.LongText({ displayName: 'Details', required: false, }), OWNER_USER_ID: Property.Number({ displayName: 'Owner User ID', required: false, }), }; export const noteFields = { TITLE: Property.ShortText({ displayName: 'Title', required: true, }), BODY: Property.LongText({ displayName: 'Body', required: false, }), }; export const productFields = { PRODUCT_NAME: Property.ShortText({ displayName: 'Product Name', required: true, }), PRODUCT_CODE: Property.ShortText({ displayName: 'Product Code', required: false, }), PRODUCT_SKU: Property.ShortText({ displayName: 'Product SKU', required: false, }), DESCRIPTION: Property.LongText({ displayName: 'Description', required: false, }), PRODUCT_FAMILY: Property.ShortText({ displayName: 'Product Family', required: false, }), PRODUCT_IMAGE_URL: Property.ShortText({ displayName: 'Product Image URL', required: false, }), DEFAULT_PRICE: Property.Number({ displayName: 'Default Price', required: false, }), ACTIVE: Property.Checkbox({ displayName: 'Active', required: false, }), OWNER_USER_ID: Property.Number({ displayName: 'Owner User ID', required: false, }), CURRENCY_CODE: Property.ShortText({ displayName: 'Currency Code', description: '3-letter currency code (e.g., USD)', required: false, }), }; export const quotationFields = { QUOTATION_NAME: Property.ShortText({ displayName: 'Quotation Name', required: true, }), OPPORTUNITY_ID: Property.Number({ displayName: 'Opportunity ID', required: true, }), QUOTE_STATUS: Property.StaticDropdown({ displayName: 'Quote Status', required: false, options: { options: [ { label: 'Draft', value: 'Draft' }, { label: 'Awaiting Approval', value: 'Awaiting Approval' }, { label: 'Approved', value: 'Approved' }, { label: 'Sent', value: 'Sent' }, { label: 'Accepted', value: 'Accepted' }, { label: 'Declined', value: 'Declined' }, ] } }), QUOTATION_DESCRIPTION: Property.LongText({ displayName: 'Description', required: false, }), QUOTATION_EXPIRATION_DATE: Property.ShortText({ displayName: 'Expiration Date', description: 'Format: YYYY-MM-DD', required: false, }), CONTACT_ID: Property.Number({ displayName: 'Contact ID', required: false, }), ORGANISATION_ID: Property.Number({ displayName: 'Organisation ID', required: false, }), PRICEBOOK_ID: Property.Number({ displayName: 'Pricebook ID', required: false, }), QUOTATION_PHONE: Property.ShortText({ displayName: 'Phone', required: false, }), QUOTATION_EMAIL: Property.ShortText({ displayName: 'Email', required: false, }), QUOTATION_FAX: Property.ShortText({ displayName: 'Fax', required: false, }), SHIPPING_HANDLING: Property.Number({ displayName: 'Shipping & Handling', required: false, }), TAX: Property.Number({ displayName: 'Tax', required: false, }), ADDRESS_BILLING_NAME: Property.ShortText({ displayName: 'Billing Name', required: false, }), ADDRESS_BILLING_STREET: Property.ShortText({ displayName: 'Billing Street', required: false, }), ADDRESS_BILLING_CITY: Property.ShortText({ displayName: 'Billing City', required: false, }), ADDRESS_BILLING_STATE: Property.ShortText({ displayName: 'Billing State', required: false, }), ADDRESS_BILLING_POSTCODE: Property.ShortText({ displayName: 'Billing Postcode', required: false, }), ADDRESS_BILLING_COUNTRY: Property.ShortText({ displayName: 'Billing Country', required: false, }), ADDRESS_SHIPPING_NAME: Property.ShortText({ displayName: 'Shipping Name', required: false, }), ADDRESS_SHIPPING_STREET: Property.ShortText({ displayName: 'Shipping Street', required: false, }), ADDRESS_SHIPPING_CITY: Property.ShortText({ displayName: 'Shipping City', required: false, }), ADDRESS_SHIPPING_STATE: Property.ShortText({ displayName: 'Shipping State', required: false, }), ADDRESS_SHIPPING_POSTCODE: Property.ShortText({ displayName: 'Shipping Postcode', required: false, }), ADDRESS_SHIPPING_COUNTRY: Property.ShortText({ displayName: 'Shipping Country', required: false, }), };

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