Skip to main content
Glama
get-leads.ts3.52 kB
import { createAction, Property } from "@activepieces/pieces-framework"; import { housecallProAuth, makeHousecallProRequest } from "../common"; import { HttpMethod } from "@activepieces/pieces-common"; export const getLeads = createAction({ auth: housecallProAuth, name: "get_leads", displayName: "Get Leads", description: "Get a list of leads", props: { customer_id: Property.ShortText({ displayName: "Customer ID", description: "Filter leads by a single customer ID (String)", required: false, }), employee_ids: Property.Array({ displayName: "Employee IDs", description: "Filter leads by a list of employee IDs (String array)", required: false, }), lead_source: Property.ShortText({ displayName: "Lead Source", description: "Filter leads by a single lead_source", required: false, }), location_ids: Property.Array({ displayName: "Location IDs", description: "If a location you want to get from / If a Company-kit header is set, location_ids will be ignored", required: false, }), page: Property.Number({ displayName: "Page", description: "Paginated page number", required: false, }), page_size: Property.Number({ displayName: "Page Size", description: "Number of leads returned per page", required: false, }), sort_by: Property.ShortText({ displayName: "Sort By", description: "Attribute to sort by", required: false, }), sort_direction: Property.ShortText({ displayName: "Sort Direction", description: "Allowed values: asc, desc", required: false, }), status: Property.ShortText({ displayName: "Status", description: "Filter leads by status", required: false, }), tag_ids: Property.Array({ displayName: "Tag IDs", description: "Filter leads by a list of tags", required: false, }), }, async run(context) { const { auth, propsValue } = context; const queryParams: Record<string, string | number | undefined> = {}; if (propsValue['customer_id']) { queryParams['customer_id'] = propsValue['customer_id']; } if (propsValue['employee_ids'] && propsValue['employee_ids'].length > 0) { queryParams['employee_ids'] = (propsValue['employee_ids'] as string[]).join(','); } if (propsValue['lead_source']) { queryParams['lead_source'] = propsValue['lead_source']; } if (propsValue['location_ids'] && propsValue['location_ids'].length > 0) { queryParams['location_ids'] = (propsValue['location_ids'] as string[]).join(','); } if (propsValue['page'] !== undefined) { queryParams['page'] = propsValue['page']; } if (propsValue['page_size'] !== undefined) { queryParams['page_size'] = propsValue['page_size']; } if (propsValue['sort_by']) { queryParams['sort_by'] = propsValue['sort_by']; } if (propsValue['sort_direction']) { queryParams['sort_direction'] = propsValue['sort_direction']; } if (propsValue['status']) { queryParams['status'] = propsValue['status']; } if (propsValue['tag_ids'] && propsValue['tag_ids'].length > 0) { queryParams['tag_ids'] = (propsValue['tag_ids'] as string[]).join(','); } const response = await makeHousecallProRequest( auth, '/leads', HttpMethod.GET, undefined, queryParams as Record<string, string> ); return response.body; }, });

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