105 lines
2.7 KiB
TypeScript
105 lines
2.7 KiB
TypeScript
import { z, IntegrationDefinition } from '@botpress/sdk'
|
|
import { leadSchema, leadPayloadSchema, searchLeadsPayloadSchema } from './definitions/schemas'
|
|
|
|
export default new IntegrationDefinition({
|
|
name: 'hunter',
|
|
version: '1.0.2',
|
|
title: 'Hunter.io',
|
|
description: 'Manage leads in Hunter.io',
|
|
readme: 'hub.md',
|
|
icon: 'icon.svg',
|
|
configuration: {
|
|
schema: z.object({
|
|
apiKey: z.string().min(1, 'API Key is required').title('API Key').describe('Your Hunter.io API Key'),
|
|
}),
|
|
},
|
|
actions: {
|
|
getLeads: {
|
|
title: 'Get Leads',
|
|
description: 'Fetch leads from Hunter.io',
|
|
input: {
|
|
schema: z.object({
|
|
search: searchLeadsPayloadSchema.title('Search filters').describe('Filters to search leads in Hunter.io'),
|
|
}),
|
|
},
|
|
output: {
|
|
schema: z.object({
|
|
leads: z.array(leadSchema).title('Leads List').describe('List of leads retrieved from Hunter.io'),
|
|
}),
|
|
},
|
|
},
|
|
retrieveLead: {
|
|
title: 'Retrieve Lead',
|
|
description: 'Retrieve a specific lead by ID from Hunter.io',
|
|
input: {
|
|
schema: z.object({
|
|
id: z.number().title('Lead ID').describe('The ID of the lead to retrieve'),
|
|
}),
|
|
},
|
|
output: {
|
|
schema: z.object({
|
|
lead: leadSchema,
|
|
}),
|
|
},
|
|
},
|
|
createLead: {
|
|
title: 'Create Lead',
|
|
description: 'Create a new lead in Hunter.io',
|
|
input: {
|
|
schema: z.object({
|
|
lead: leadPayloadSchema,
|
|
}),
|
|
},
|
|
output: {
|
|
schema: z.object({
|
|
lead: leadSchema,
|
|
}),
|
|
},
|
|
},
|
|
createOrUpdateLead: {
|
|
title: 'Create or update Lead',
|
|
description: 'Create or update a lead in Hunter.io',
|
|
input: {
|
|
schema: z.object({
|
|
lead: leadPayloadSchema,
|
|
}),
|
|
},
|
|
output: {
|
|
schema: z.object({
|
|
lead: leadSchema,
|
|
}),
|
|
},
|
|
},
|
|
updateLead: {
|
|
title: 'Update Lead',
|
|
description: 'Update an existing lead in Hunter.io',
|
|
input: {
|
|
schema: z.object({
|
|
id: z.number().title('Lead ID').describe('The ID of the lead to update'),
|
|
lead: leadPayloadSchema.partial({ email: true }),
|
|
}),
|
|
},
|
|
output: {
|
|
schema: z.object({}),
|
|
},
|
|
},
|
|
deleteLead: {
|
|
title: 'Delete Lead',
|
|
description: 'Delete a lead from Hunter.io',
|
|
input: {
|
|
schema: z.object({
|
|
id: z.number().title('Lead ID').describe('The ID of the lead to delete'),
|
|
}),
|
|
},
|
|
output: {
|
|
schema: z.object({}),
|
|
},
|
|
},
|
|
},
|
|
attributes: {
|
|
category: 'Marketing & Email',
|
|
guideSlug: 'hunter',
|
|
repo: 'botpress',
|
|
},
|
|
})
|