107 lines
2.4 KiB
TypeScript
107 lines
2.4 KiB
TypeScript
import { Bundle, ZObject } from 'zapier-platform-core';
|
|
import handleQueryParams from '../utils/handleQueryParams';
|
|
|
|
const perform = async (z: ZObject, bundle: Bundle) => {
|
|
const response = await z.request({
|
|
body: {
|
|
query: `
|
|
mutation CreateCompany {
|
|
createOneCompany(
|
|
data:{${handleQueryParams(bundle.inputData)}}
|
|
)
|
|
{id}
|
|
}`,
|
|
},
|
|
headers: {
|
|
'Content-Type': 'application/json',
|
|
Accept: 'application/json',
|
|
Authorization: `Bearer ${bundle.authData.apiKey}`,
|
|
},
|
|
method: 'POST',
|
|
url: `${process.env.SERVER_BASE_URL}/graphql`,
|
|
});
|
|
return response.json;
|
|
};
|
|
export default {
|
|
display: {
|
|
description: 'Creates a new Company in Twenty',
|
|
hidden: false,
|
|
label: 'Create New Company',
|
|
},
|
|
key: 'create_company',
|
|
noun: 'Company',
|
|
operation: {
|
|
inputFields: [
|
|
{
|
|
key: 'name',
|
|
label: 'Company Name',
|
|
type: 'string',
|
|
required: true,
|
|
list: false,
|
|
altersDynamicFields: false,
|
|
},
|
|
{
|
|
key: 'address',
|
|
label: 'Address',
|
|
type: 'string',
|
|
required: true,
|
|
list: false,
|
|
altersDynamicFields: false,
|
|
},
|
|
{
|
|
key: 'domainName',
|
|
label: 'Url',
|
|
type: 'string',
|
|
required: true,
|
|
list: false,
|
|
altersDynamicFields: false,
|
|
},
|
|
{
|
|
key: 'linkedinUrl',
|
|
label: 'Linkedin',
|
|
type: 'string',
|
|
required: false,
|
|
list: false,
|
|
altersDynamicFields: false,
|
|
},
|
|
{
|
|
key: 'xUrl',
|
|
label: 'Twitter',
|
|
type: 'string',
|
|
required: false,
|
|
list: false,
|
|
altersDynamicFields: false,
|
|
},
|
|
{
|
|
key: 'annualRecurringRevenue',
|
|
label: 'ARR (Annual Recurring Revenue)',
|
|
type: 'number',
|
|
required: false,
|
|
list: false,
|
|
altersDynamicFields: false,
|
|
},
|
|
{
|
|
key: 'idealCustomerProfile',
|
|
label: 'ICP (Ideal Customer Profile)',
|
|
type: 'boolean',
|
|
required: false,
|
|
list: false,
|
|
altersDynamicFields: false,
|
|
},
|
|
{
|
|
key: 'employees',
|
|
label: 'Employees (number of)',
|
|
type: 'number',
|
|
required: false,
|
|
list: false,
|
|
altersDynamicFields: false,
|
|
},
|
|
],
|
|
sample: {
|
|
name: 'Apple',
|
|
address: 'Cupertino',
|
|
},
|
|
perform,
|
|
},
|
|
};
|