Skip to main content
Glama

mcp-google-sheets

props.ts5.31 kB
import { Property, DropdownOption } from '@activepieces/pieces-framework'; import { HttpMethod } from '@activepieces/pieces-common'; import { makeRequest } from './index'; interface KommoAuth { subdomain: string; apiToken: string; } export const pipelineDropdown = (required = false) => Property.Dropdown({ displayName: 'Pipeline', required, refreshers: [], options: async ({ auth }) => { if (!auth) { return { disabled: true, placeholder: 'Please connect your Kommo account', options: [], }; } const { subdomain, apiToken } = auth as KommoAuth; const pipelines = await makeRequest({ subdomain, apiToken }, HttpMethod.GET, '/leads/pipelines'); const options: DropdownOption<number>[] = (pipelines._embedded?.pipelines || []).map( (pipeline: any) => ({ label: pipeline.name, value: pipeline.id }) ); return { disabled: false, options, }; }, }); export const statusDropdown = (required = false) => Property.Dropdown({ displayName: 'Status', required, refreshers: ['pipelineId'], options: async ({ auth, pipelineId }) => { if (!auth || !pipelineId) { return { disabled: true, placeholder: 'Select a pipeline first', options: [], }; } const { subdomain, apiToken } = auth as KommoAuth; const statuses = await makeRequest( { subdomain, apiToken }, HttpMethod.GET, `/leads/pipelines/${pipelineId}/statuses` ); const options: DropdownOption<number>[] = (statuses._embedded?.statuses || []).map( (status: any) => ({ label: status.name, value: status.id, }) ); return { disabled: false, options, }; }, }); export const userDropdown = (required = false) => Property.Dropdown({ displayName: 'Unique identified of a responsible user', required, refreshers: [], options: async ({ auth }) => { if (!auth) { return { disabled: true, placeholder: 'Please connect your Kommo account', options: [], }; } const { subdomain, apiToken } = auth as KommoAuth; const users = await makeRequest({ subdomain, apiToken }, HttpMethod.GET, '/users'); const options: DropdownOption<number>[] = (users._embedded?.users || []).map((user: any) => ({ label: `${user.name} (${user.email})`, value: user.id, })); return { disabled: false, options, }; }, }); export const lossReasonDropdown = (required = false) => Property.Dropdown({ displayName: 'Loss Reason', required, refreshers: [], options: async ({ auth }) => { if (!auth) { return { disabled: true, placeholder: 'Please connect your Kommo account', options: [], }; } const { subdomain, apiToken } = auth as KommoAuth; const reasons = await makeRequest({ subdomain, apiToken }, HttpMethod.GET, '/leads/loss_reasons'); const options: DropdownOption<number>[] = (reasons._embedded?.loss_reasons || []).map( (reason: any) => ({ label: reason.name, value: reason.id, }) ); return { disabled: false, options, }; }, }); export const leadDropdown = Property.Dropdown({ displayName: 'Lead', required: true, refreshers: [], options: async ({ auth }) => { if (!auth) { return { disabled: true, placeholder: 'Please connect your Kommo account', options: [], }; } const { subdomain, apiToken } = auth as KommoAuth; const leads = await makeRequest({ subdomain, apiToken }, HttpMethod.GET, '/leads'); const options: DropdownOption<number>[] = (leads._embedded?.leads || []).map((lead: any) => ({ label: lead.name, value: lead.id, })); return { disabled: false, options, }; }, }); export const companyDropdown = Property.Dropdown({ displayName: 'Company', required: false, refreshers: [], options: async ({ auth }) => { if (!auth) { return { disabled: true, placeholder: 'Please connect your Kommo account', options: [], }; } const { subdomain, apiToken } = auth as KommoAuth; const companies = await makeRequest({ subdomain, apiToken }, HttpMethod.GET, '/companies'); const options: DropdownOption<string>[] = (companies._embedded?.companies || []).map( (company: any) => ({ label: company.name, value: company.id.toString(), }) ); return { disabled: false, options, }; }, }); export const contactDropdown = Property.Dropdown({ displayName: 'Contact', required: false, refreshers: [], options: async ({ auth }) => { if (!auth) { return { disabled: true, placeholder: 'Please connect your Kommo account', options: [], }; } const { subdomain, apiToken } = auth as KommoAuth; const contacts = await makeRequest({ subdomain, apiToken }, HttpMethod.GET, '/contacts'); const options: DropdownOption<number>[] = (contacts._embedded?.contacts || []).map( (contact: any) => ({ label: contact.name, value: contact.id, }) ); return { disabled: false, options, }; }, });

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