Skip to main content
Glama

mcp-google-sheets

props.ts3.67 kB
import { Property } from '@activepieces/pieces-framework'; import { makeRequest } from './client'; import { HttpMethod } from '@activepieces/pieces-common'; export const callIdDropdown = Property.Dropdown({ displayName: 'Call', required: true, refreshers: [], options: async ({ auth }) => { if (!auth) { return { disabled: true, options: [], placeholder: 'Please connect your account first', }; } try { const response = await makeRequest( auth as { username: string; password: string }, HttpMethod.GET, '/calls' ); const {calls} = response as {calls:{id:number,raw_digits:string, direction:string}[]} return { disabled: false, options: calls.map((call) => ({ label: `${call.raw_digits} - ${call.direction}`, value: call.id, })), }; } catch (error) { return { disabled: true, options: [], placeholder: 'Error loading calls.', }; } }, }); export const numberIdDropdown = Property.Dropdown({ displayName: 'Number ID', required: true, refreshers: ['auth'], options: async ({ auth }) => { if (!auth) { return { disabled: true, options: [], placeholder: 'Please connect your account first', }; } try { const response = await makeRequest( auth as { username: string; password: string }, HttpMethod.GET, '/numbers' ); return { disabled: false, options: response.numbers.map((number: any) => ({ label: number.name, value: number.id, })), }; } catch (error) { return { disabled: true, options: [], placeholder: 'Error loading numbers', }; } }, }); export const contactIdDropdown = Property.Dropdown({ displayName: 'Contact ID', description: 'Select the contact to update', required: true, refreshers: ['auth'], options: async ({ auth }) => { if (!auth) { return { disabled: true, options: [], placeholder: 'Please connect your account first', }; } try { const response = await makeRequest( auth as { username: string; password: string }, HttpMethod.GET, '/contacts' ); const {contacts} = response as {contacts:{id:string,first_name:string,last_name:string}[]} return { disabled: false, options: contacts.map((contact) => ({ label: `${contact.first_name || ""} ${contact.last_name || ""}` || contact.id, value: contact.id, })), }; } catch (error) { return { disabled: true, options: [], placeholder: 'Error loading contacts', }; } }, }); export const tagIdDropdown = Property.MultiSelectDropdown({ displayName: 'Tags', required: false, refreshers: ['auth'], options: async ({ auth }) => { if (!auth) { return { disabled: true, options: [], placeholder: 'Please connect your account first', }; } try { const response = await makeRequest( auth as { username: string; password: string }, HttpMethod.GET, '/tags' ); const {tags} = response as {tags:{id:number,name:string}[]} return { disabled: false, options: tags.map((tag) => ({ label: tag.name, value: tag.id, })), }; } catch (error) { return { disabled: true, options: [], placeholder: 'Error loading tags', }; } }, });

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