diff --git a/package.json b/package.json index d666947d95..f96d32016b 100644 --- a/package.json +++ b/package.json @@ -74,6 +74,7 @@ "class-transformer": "^0.5.1", "clsx": "^1.2.1", "cross-env": "^7.0.3", + "crypto-js": "^4.2.0", "danger-plugin-todos": "^1.3.1", "dataloader": "^2.2.2", "date-fns": "^2.30.0", @@ -230,6 +231,7 @@ "@types/bcrypt": "^5.0.0", "@types/better-sqlite3": "^7.6.8", "@types/bytes": "^3.1.1", + "@types/crypto-js": "^4.2.2", "@types/deep-equal": "^1.0.1", "@types/express": "^4.17.13", "@types/graphql-fields": "^1.3.6", diff --git a/packages/twenty-chrome-extension/.env.example b/packages/twenty-chrome-extension/.env.example index 278bc5952e..e6da58f934 100644 --- a/packages/twenty-chrome-extension/.env.example +++ b/packages/twenty-chrome-extension/.env.example @@ -1,2 +1,3 @@ VITE_SERVER_BASE_URL=https://api.twenty.com -VITE_FRONT_BASE_URL=https://app.twenty.com \ No newline at end of file +VITE_FRONT_BASE_URL=https://app.twenty.com +VITE_MODE=production \ No newline at end of file diff --git a/packages/twenty-chrome-extension/package.json b/packages/twenty-chrome-extension/package.json index 9cec9e87be..7ccb6ce2f6 100644 --- a/packages/twenty-chrome-extension/package.json +++ b/packages/twenty-chrome-extension/package.json @@ -6,13 +6,13 @@ "type": "module", "scripts": { "nx": "NX_DEFAULT_PROJECT=twenty-chrome-extension node ../../node_modules/nx/bin/nx.js", - "clean": "npx rimraf ./dist", - "start": "yarn clean && npx vite", - "build": "yarn clean && npx tsc && npx vite build", - "lint": "npx eslint . --report-unused-disable-directives --max-warnings 0 --config .eslintrc.cjs", - "graphql:generate": "npx graphql-codegen", - "fmt": "npx prettier --check \"src/**/*.ts\" \"src/**/*.tsx\"", - "fmt:fix": "npx prettier --cache --write \"src/**/*.ts\" \"src/**/*.tsx\"" + "clean": "rimraf ./dist", + "start": "yarn clean && VITE_MODE=development vite", + "build": "yarn clean && tsc && vite build", + "lint": "eslint . --report-unused-disable-directives --max-warnings 0 --config .eslintrc.cjs", + "graphql:generate": "graphql-codegen", + "fmt": "prettier --check \"src/**/*.ts\" \"src/**/*.tsx\"", + "fmt:fix": "prettier --cache --write \"src/**/*.ts\" \"src/**/*.tsx\"" }, "dependencies": { "@types/chrome": "^0.0.256" diff --git a/packages/twenty-chrome-extension/src/background/index.ts b/packages/twenty-chrome-extension/src/background/index.ts index 0140c3b6d9..f87f647c8d 100644 --- a/packages/twenty-chrome-extension/src/background/index.ts +++ b/packages/twenty-chrome-extension/src/background/index.ts @@ -1,4 +1,7 @@ +import Crypto from 'crypto-js'; + import { openOptionsPage } from '~/background/utils/openOptionsPage'; +import { exchangeAuthorizationCode } from '~/db/auth.db'; import { isDefined } from '~/utils/isDefined'; // Open options page programmatically in a new tab. @@ -27,6 +30,11 @@ chrome.runtime.onMessage.addListener((message, _, sendResponse) => { case 'openOptionsPage': openOptionsPage(); break; + case 'CONNECT': + launchOAuth(({ status, message }) => { + sendResponse({ status, message }); + }); + break; default: break; } @@ -34,6 +42,81 @@ chrome.runtime.onMessage.addListener((message, _, sendResponse) => { return true; }); +const generateRandomString = (length: number) => { + const charset = + 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'; + let result = ''; + for (let i = 0; i < length; i++) { + result += charset.charAt(Math.floor(Math.random() * charset.length)); + } + return result; +}; + +const generateCodeVerifierAndChallenge = () => { + const codeVerifier = generateRandomString(32); + const hash = Crypto.SHA256(codeVerifier); + const codeChallenge = hash + .toString(Crypto.enc.Base64) + .replace(/\+/g, '-') + .replace(/\//g, '_') + .replace(/=+$/, ''); + + return { codeVerifier, codeChallenge }; +}; + +const launchOAuth = ( + callback: ({ status, message }: { status: boolean; message: string }) => void, +) => { + const { codeVerifier, codeChallenge } = generateCodeVerifierAndChallenge(); + const redirectUrl = chrome.identity.getRedirectURL(); + chrome.identity + .launchWebAuthFlow({ + url: `${ + import.meta.env.VITE_FRONT_BASE_URL + }/authorize?clientId=chrome&codeChallenge=${codeChallenge}&redirectUrl=${redirectUrl}`, + interactive: true, + }) + .then((responseUrl) => { + if (typeof responseUrl === 'string') { + const url = new URL(responseUrl); + const authorizationCode = url.searchParams.get( + 'authorizationCode', + ) as string; + exchangeAuthorizationCode({ + authorizationCode, + codeVerifier, + }).then((tokens) => { + if (isDefined(tokens)) { + chrome.storage.local.set({ + loginToken: tokens.loginToken, + }); + + chrome.storage.local.set({ + accessToken: tokens.accessToken, + }); + + chrome.storage.local.set({ + refreshToken: tokens.refreshToken, + }); + + callback({ status: true, message: '' }); + + chrome.tabs.query({ active: true, currentWindow: true }, (tabs) => { + if (isDefined(tabs) && isDefined(tabs[0])) { + chrome.tabs.sendMessage(tabs[0].id ?? 0, { + action: 'AUTHENTICATED', + }); + } + }); + } + }); + } + }) + .catch((error) => { + callback({ status: false, message: error.message }); + }); +}; + chrome.tabs.onUpdated.addListener((tabId, changeInfo, tab) => { const isDesiredRoute = tab.url?.match(/^https?:\/\/(?:www\.)?linkedin\.com\/company(?:\/\S+)?/) || diff --git a/packages/twenty-chrome-extension/src/contentScript/createButton.ts b/packages/twenty-chrome-extension/src/contentScript/createButton.ts index a566d1465c..a6883b955e 100644 --- a/packages/twenty-chrome-extension/src/contentScript/createButton.ts +++ b/packages/twenty-chrome-extension/src/contentScript/createButton.ts @@ -52,12 +52,13 @@ export const createDefaultButton = ( Object.assign(div.style, divStyles); }); + // Handle the click event. div.addEventListener('click', async (e) => { e.preventDefault(); const store = await chrome.storage.local.get(); // If an api key is not set, the options page opens up to allow the user to configure an api key. - if (!store.apiKey) { + if (!store.accessToken) { chrome.runtime.sendMessage({ action: 'openOptionsPage' }); return; } diff --git a/packages/twenty-chrome-extension/src/contentScript/index.ts b/packages/twenty-chrome-extension/src/contentScript/index.ts index 4df810e5cb..cc761248bd 100644 --- a/packages/twenty-chrome-extension/src/contentScript/index.ts +++ b/packages/twenty-chrome-extension/src/contentScript/index.ts @@ -1,5 +1,6 @@ import { insertButtonForCompany } from '~/contentScript/extractCompanyProfile'; import { insertButtonForPerson } from '~/contentScript/extractPersonProfile'; +import { isDefined } from '~/utils/isDefined'; // Inject buttons into the DOM when SPA is reloaded on the resource url. // e.g. reload the page when on https://www.linkedin.com/in/mabdullahabaid/ @@ -20,20 +21,26 @@ chrome.runtime.onMessage.addListener(async (message, _, sendResponse) => { } if (message.action === 'TOGGLE') { - toggle(); + await toggle(); + } + + if (message.action === 'AUTHENTICATED') { + await authenticated(); } sendResponse('Executing!'); }); +const IFRAME_WIDTH = '400px'; + const createIframe = () => { const iframe = document.createElement('iframe'); iframe.style.background = 'lightgrey'; iframe.style.height = '100vh'; - iframe.style.width = '400px'; + iframe.style.width = IFRAME_WIDTH; iframe.style.position = 'fixed'; iframe.style.top = '0px'; - iframe.style.right = '-400px'; + iframe.style.right = `-${IFRAME_WIDTH}`; iframe.style.zIndex = '9000000000000000000'; iframe.style.transition = 'ease-in-out 0.3s'; return iframe; @@ -41,33 +48,57 @@ const createIframe = () => { const handleContentIframeLoadComplete = () => { //If the pop-out window is already open then we replace loading iframe with our content iframe - if (loadingIframe.style.right === '0px') contentIframe.style.right = '0px'; - loadingIframe.style.display = 'none'; + if (optionsIframe.style.right === '0px') contentIframe.style.right = '0px'; + optionsIframe.style.display = 'none'; contentIframe.style.display = 'block'; }; //Creating one iframe where we are loading our front end in the background const contentIframe = createIframe(); contentIframe.style.display = 'none'; -contentIframe.src = `${import.meta.env.VITE_FRONT_BASE_URL}`; -contentIframe.onload = handleContentIframeLoadComplete; -//Creating this iframe to show as a loading state until the above iframe loads completely -const loadingIframe = createIframe(); -loadingIframe.src = chrome.runtime.getURL('loading.html'); +chrome.storage.local.get().then((store) => { + if (isDefined(store.loginToken)) { + contentIframe.src = `${import.meta.env.VITE_FRONT_BASE_URL}`; + contentIframe.onload = handleContentIframeLoadComplete; + } +}); + +const optionsIframe = createIframe(); +optionsIframe.src = chrome.runtime.getURL('options.html'); -document.body.appendChild(loadingIframe); document.body.appendChild(contentIframe); +document.body.appendChild(optionsIframe); const toggleIframe = (iframe: HTMLIFrameElement) => { - if (iframe.style.right === '-400px' && iframe.style.display !== 'none') { + if ( + iframe.style.right === `-${IFRAME_WIDTH}` && + iframe.style.display !== 'none' + ) { iframe.style.right = '0px'; } else if (iframe.style.right === '0px' && iframe.style.display !== 'none') { - iframe.style.right = '-400px'; + iframe.style.right = `-${IFRAME_WIDTH}`; } }; -const toggle = () => { - toggleIframe(loadingIframe); - toggleIframe(contentIframe); +const toggle = async () => { + const store = await chrome.storage.local.get(); + if (isDefined(store.accessToken)) { + toggleIframe(contentIframe); + } else { + toggleIframe(optionsIframe); + } +}; + +const authenticated = async () => { + const store = await chrome.storage.local.get(); + if (isDefined(store.loginToken)) { + contentIframe.src = `${ + import.meta.env.VITE_FRONT_BASE_URL + }/verify?loginToken=${store.loginToken.token}`; + contentIframe.onload = handleContentIframeLoadComplete; + toggleIframe(contentIframe); + } else { + toggleIframe(optionsIframe); + } }; diff --git a/packages/twenty-chrome-extension/src/db/auth.db.ts b/packages/twenty-chrome-extension/src/db/auth.db.ts new file mode 100644 index 0000000000..60af6a0766 --- /dev/null +++ b/packages/twenty-chrome-extension/src/db/auth.db.ts @@ -0,0 +1,26 @@ +import { + ExchangeAuthCodeInput, + ExchangeAuthCodeResponse, + Tokens, +} from '~/db/types/auth.types'; +import { EXCHANGE_AUTHORIZATION_CODE } from '~/graphql/auth/mutations'; +import { isDefined } from '~/utils/isDefined'; +import { callMutation } from '~/utils/requestDb'; + +export const exchangeAuthorizationCode = async ( + exchangeAuthCodeInput: ExchangeAuthCodeInput, +): Promise => { + const data = await callMutation( + EXCHANGE_AUTHORIZATION_CODE, + exchangeAuthCodeInput, + ); + if (isDefined(data?.exchangeAuthorizationCode)) + return data.exchangeAuthorizationCode; + else return null; +}; + +// export const RenewToken = async (appToken: string): Promise => { +// const data = await callQuery(RENEW_TOKEN, { appToken }); +// if (isDefined(data)) return data; +// else return null; +// }; diff --git a/packages/twenty-chrome-extension/src/db/company.db.ts b/packages/twenty-chrome-extension/src/db/company.db.ts index 7c3c788910..bff265f79e 100644 --- a/packages/twenty-chrome-extension/src/db/company.db.ts +++ b/packages/twenty-chrome-extension/src/db/company.db.ts @@ -13,35 +13,29 @@ import { callMutation, callQuery } from '../utils/requestDb'; export const fetchCompany = async ( companyfilerInput: CompanyFilterInput, ): Promise => { - try { - const data = await callQuery(FIND_COMPANY, { - filter: { - ...companyfilerInput, - }, - }); - if (isDefined(data?.companies.edges)) { - return data?.companies.edges.length > 0 - ? data?.companies.edges[0].node - : null; - } - return null; - } catch (error) { - return null; + const data = await callQuery(FIND_COMPANY, { + filter: { + ...companyfilerInput, + }, + }); + if (isDefined(data?.companies.edges)) { + return data.companies.edges.length > 0 + ? isDefined(data.companies.edges[0].node) + ? data.companies.edges[0].node + : null + : null; } + return null; }; export const createCompany = async ( company: CompanyInput, ): Promise => { - try { - const data = await callMutation(CREATE_COMPANY, { - input: company, - }); - if (isDefined(data)) { - return data.createCompany.id; - } - return null; - } catch (error) { - return null; + const data = await callMutation(CREATE_COMPANY, { + input: company, + }); + if (isDefined(data)) { + return data.createCompany.id; } + return null; }; diff --git a/packages/twenty-chrome-extension/src/db/person.db.ts b/packages/twenty-chrome-extension/src/db/person.db.ts index a7df64710e..607233ba97 100644 --- a/packages/twenty-chrome-extension/src/db/person.db.ts +++ b/packages/twenty-chrome-extension/src/db/person.db.ts @@ -13,33 +13,29 @@ import { callMutation, callQuery } from '../utils/requestDb'; export const fetchPerson = async ( personFilterData: PersonFilterInput, ): Promise => { - try { - const data = await callQuery(FIND_PERSON, { - filter: { - ...personFilterData, - }, - }); - if (isDefined(data?.people.edges)) { - return data?.people.edges.length > 0 ? data?.people.edges[0].node : null; - } - return null; - } catch (error) { - return null; + const data = await callQuery(FIND_PERSON, { + filter: { + ...personFilterData, + }, + }); + if (isDefined(data?.people.edges)) { + return data.people.edges.length > 0 + ? isDefined(data.people.edges[0].node) + ? data.people.edges[0].node + : null + : null; } + return null; }; export const createPerson = async ( person: PersonInput, ): Promise => { - try { - const data = await callMutation(CREATE_PERSON, { - input: person, - }); - if (isDefined(data?.createPerson)) { - return data.createPerson.id; - } - return null; - } catch (error) { - return null; + const data = await callMutation(CREATE_PERSON, { + input: person, + }); + if (isDefined(data?.createPerson)) { + return data.createPerson.id; } + return null; }; diff --git a/packages/twenty-chrome-extension/src/db/types/auth.types.ts b/packages/twenty-chrome-extension/src/db/types/auth.types.ts new file mode 100644 index 0000000000..68d339c254 --- /dev/null +++ b/packages/twenty-chrome-extension/src/db/types/auth.types.ts @@ -0,0 +1,20 @@ +export type AuthToken = { + token: string; + expiresAt: Date; +}; + +export type ExchangeAuthCodeInput = { + authorizationCode: string; + codeVerifier?: string; + clientSecret?: string; +}; + +export type Tokens = { + loginToken: AuthToken; + accessToken: AuthToken; + refreshToken: AuthToken; +}; + +export type ExchangeAuthCodeResponse = { + exchangeAuthorizationCode: Tokens; +}; diff --git a/packages/twenty-chrome-extension/src/generated/graphql.tsx b/packages/twenty-chrome-extension/src/generated/graphql.tsx index f48e6ba5dd..424648ee30 100644 --- a/packages/twenty-chrome-extension/src/generated/graphql.tsx +++ b/packages/twenty-chrome-extension/src/generated/graphql.tsx @@ -19,6 +19,7 @@ export type Scalars = { Date: any; DateTime: any; JSON: any; + Position: any; UUID: any; Upload: any; }; @@ -31,34 +32,37 @@ export type ActivateWorkspaceInput = { export type Activity = { /** Activity targets */ activityTargets?: Maybe; - /** Acitivity assignee */ + /** Activity assignee */ assignee?: Maybe; - /** Acitivity assignee id foreign key */ + /** Activity assignee id foreign key */ assigneeId?: Maybe; /** Activity attachments */ attachments?: Maybe; /** Activity author */ author?: Maybe; /** Activity author id foreign key */ - authorId: Scalars['ID']; + authorId?: Maybe; /** Activity body */ - body: Scalars['String']; + body?: Maybe; /** Activity comments */ comments?: Maybe; /** Activity completion date */ completedAt?: Maybe; - createdAt: Scalars['DateTime']; + /** Creation date */ + createdAt?: Maybe; deletedAt?: Maybe; /** Activity due date */ dueAt?: Maybe; - id: Scalars['ID']; + /** Id */ + id?: Maybe; /** Activity reminder date */ reminderAt?: Maybe; /** Activity title */ - title: Scalars['String']; + title?: Maybe; /** Activity type */ - type: Scalars['String']; - updatedAt: Scalars['DateTime']; + type?: Maybe; + /** Update date */ + updatedAt?: Maybe; }; @@ -96,26 +100,28 @@ export type ActivityCommentsArgs = { /** An activity */ export type ActivityConnection = { - edges: Array; - pageInfo: PageInfo; + edges?: Maybe>; + pageInfo?: Maybe; /** Total number of records in the connection */ totalCount?: Maybe; }; /** An activity */ export type ActivityCreateInput = { - /** Acitivity assignee id foreign key */ + /** Activity assignee id foreign key */ assigneeId?: InputMaybe; /** Activity author id foreign key */ - authorId: Scalars['ID']; + authorId?: InputMaybe; /** Activity body */ body?: InputMaybe; /** Activity completion date */ completedAt?: InputMaybe; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** Activity due date */ dueAt?: InputMaybe; + /** Id */ id?: InputMaybe; /** Activity reminder date */ reminderAt?: InputMaybe; @@ -123,19 +129,20 @@ export type ActivityCreateInput = { title?: InputMaybe; /** Activity type */ type?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; }; /** An activity */ export type ActivityEdge = { - cursor: Scalars['Cursor']; - node: Activity; + cursor?: Maybe; + node?: Maybe; }; /** An activity */ export type ActivityFilterInput = { and?: InputMaybe>>; - /** Acitivity assignee id foreign key */ + /** Activity assignee id foreign key */ assigneeId?: InputMaybe; /** Activity author id foreign key */ authorId?: InputMaybe; @@ -143,10 +150,12 @@ export type ActivityFilterInput = { body?: InputMaybe; /** Activity completion date */ completedAt?: InputMaybe; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** Activity due date */ dueAt?: InputMaybe; + /** Id */ id?: InputMaybe; not?: InputMaybe; or?: InputMaybe>>; @@ -156,12 +165,13 @@ export type ActivityFilterInput = { title?: InputMaybe; /** Activity type */ type?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; }; /** An activity */ export type ActivityOrderByInput = { - /** Acitivity assignee id foreign key */ + /** Activity assignee id foreign key */ assigneeId?: InputMaybe; /** Activity author id foreign key */ authorId?: InputMaybe; @@ -169,10 +179,12 @@ export type ActivityOrderByInput = { body?: InputMaybe; /** Activity completion date */ completedAt?: InputMaybe; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** Activity due date */ dueAt?: InputMaybe; + /** Id */ id?: InputMaybe; /** Activity reminder date */ reminderAt?: InputMaybe; @@ -180,6 +192,7 @@ export type ActivityOrderByInput = { title?: InputMaybe; /** Activity type */ type?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; }; @@ -193,9 +206,11 @@ export type ActivityTarget = { company?: Maybe; /** ActivityTarget company id foreign key */ companyId?: Maybe; - createdAt: Scalars['DateTime']; + /** Creation date */ + createdAt?: Maybe; deletedAt?: Maybe; - id: Scalars['ID']; + /** Id */ + id?: Maybe; /** ActivityTarget opportunity */ opportunity?: Maybe; /** ActivityTarget opportunity id foreign key */ @@ -204,13 +219,14 @@ export type ActivityTarget = { person?: Maybe; /** ActivityTarget person id foreign key */ personId?: Maybe; - updatedAt: Scalars['DateTime']; + /** Update date */ + updatedAt?: Maybe; }; /** An activity target */ export type ActivityTargetConnection = { - edges: Array; - pageInfo: PageInfo; + edges?: Maybe>; + pageInfo?: Maybe; /** Total number of records in the connection */ totalCount?: Maybe; }; @@ -221,20 +237,23 @@ export type ActivityTargetCreateInput = { activityId?: InputMaybe; /** ActivityTarget company id foreign key */ companyId?: InputMaybe; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; + /** Id */ id?: InputMaybe; /** ActivityTarget opportunity id foreign key */ opportunityId?: InputMaybe; /** ActivityTarget person id foreign key */ personId?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; }; /** An activity target */ export type ActivityTargetEdge = { - cursor: Scalars['Cursor']; - node: ActivityTarget; + cursor?: Maybe; + node?: Maybe; }; /** An activity target */ @@ -244,8 +263,10 @@ export type ActivityTargetFilterInput = { and?: InputMaybe>>; /** ActivityTarget company id foreign key */ companyId?: InputMaybe; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; + /** Id */ id?: InputMaybe; not?: InputMaybe; /** ActivityTarget opportunity id foreign key */ @@ -253,6 +274,7 @@ export type ActivityTargetFilterInput = { or?: InputMaybe>>; /** ActivityTarget person id foreign key */ personId?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; }; @@ -262,13 +284,16 @@ export type ActivityTargetOrderByInput = { activityId?: InputMaybe; /** ActivityTarget company id foreign key */ companyId?: InputMaybe; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; + /** Id */ id?: InputMaybe; /** ActivityTarget opportunity id foreign key */ opportunityId?: InputMaybe; /** ActivityTarget person id foreign key */ personId?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; }; @@ -278,19 +303,22 @@ export type ActivityTargetUpdateInput = { activityId?: InputMaybe; /** ActivityTarget company id foreign key */ companyId?: InputMaybe; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; + /** Id */ id?: InputMaybe; /** ActivityTarget opportunity id foreign key */ opportunityId?: InputMaybe; /** ActivityTarget person id foreign key */ personId?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; }; /** An activity */ export type ActivityUpdateInput = { - /** Acitivity assignee id foreign key */ + /** Activity assignee id foreign key */ assigneeId?: InputMaybe; /** Activity author id foreign key */ authorId?: InputMaybe; @@ -298,10 +326,12 @@ export type ActivityUpdateInput = { body?: InputMaybe; /** Activity completion date */ completedAt?: InputMaybe; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** Activity due date */ dueAt?: InputMaybe; + /** Id */ id?: InputMaybe; /** Activity reminder date */ reminderAt?: InputMaybe; @@ -309,6 +339,85 @@ export type ActivityUpdateInput = { title?: InputMaybe; /** Activity type */ type?: InputMaybe; + /** Update date */ + updatedAt?: InputMaybe; +}; + +export type Address = { + addressCity?: Maybe; + addressCountry?: Maybe; + addressLat?: Maybe; + addressLng?: Maybe; + addressPostcode?: Maybe; + addressState?: Maybe; + addressStreet1?: Maybe; + addressStreet2?: Maybe; + createdAt?: Maybe; + deletedAt?: Maybe; + id?: Maybe; + updatedAt?: Maybe; +}; + +export type AddressCreateInput = { + addressCity?: InputMaybe; + addressCountry?: InputMaybe; + addressLat?: InputMaybe; + addressLng?: InputMaybe; + addressPostcode?: InputMaybe; + addressState?: InputMaybe; + addressStreet1?: InputMaybe; + addressStreet2?: InputMaybe; + createdAt?: InputMaybe; + deletedAt?: InputMaybe; + id?: InputMaybe; + updatedAt?: InputMaybe; +}; + +export type AddressFilterInput = { + addressCity?: InputMaybe; + addressCountry?: InputMaybe; + addressLat?: InputMaybe; + addressLng?: InputMaybe; + addressPostcode?: InputMaybe; + addressState?: InputMaybe; + addressStreet1?: InputMaybe; + addressStreet2?: InputMaybe; + and?: InputMaybe>>; + createdAt?: InputMaybe; + deletedAt?: InputMaybe; + id?: InputMaybe; + not?: InputMaybe; + or?: InputMaybe>>; + updatedAt?: InputMaybe; +}; + +export type AddressOrderByInput = { + addressCity?: InputMaybe; + addressCountry?: InputMaybe; + addressLat?: InputMaybe; + addressLng?: InputMaybe; + addressPostcode?: InputMaybe; + addressState?: InputMaybe; + addressStreet1?: InputMaybe; + addressStreet2?: InputMaybe; + createdAt?: InputMaybe; + deletedAt?: InputMaybe; + id?: InputMaybe; + updatedAt?: InputMaybe; +}; + +export type AddressUpdateInput = { + addressCity?: InputMaybe; + addressCountry?: InputMaybe; + addressLat?: InputMaybe; + addressLng?: InputMaybe; + addressPostcode?: InputMaybe; + addressState?: InputMaybe; + addressStreet1?: InputMaybe; + addressStreet2?: InputMaybe; + createdAt?: InputMaybe; + deletedAt?: InputMaybe; + id?: InputMaybe; updatedAt?: InputMaybe; }; @@ -319,53 +428,61 @@ export type Analytics = { /** An api key */ export type ApiKey = { - createdAt: Scalars['DateTime']; + /** Creation date */ + createdAt?: Maybe; deletedAt?: Maybe; /** ApiKey expiration date */ - expiresAt: Scalars['DateTime']; - id: Scalars['ID']; + expiresAt?: Maybe; + /** Id */ + id?: Maybe; /** ApiKey name */ - name: Scalars['String']; + name?: Maybe; /** ApiKey revocation date */ revokedAt?: Maybe; - updatedAt: Scalars['DateTime']; + /** Update date */ + updatedAt?: Maybe; }; /** An api key */ export type ApiKeyConnection = { - edges: Array; - pageInfo: PageInfo; + edges?: Maybe>; + pageInfo?: Maybe; /** Total number of records in the connection */ totalCount?: Maybe; }; /** An api key */ export type ApiKeyCreateInput = { + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** ApiKey expiration date */ expiresAt: Scalars['DateTime']; + /** Id */ id?: InputMaybe; /** ApiKey name */ name?: InputMaybe; /** ApiKey revocation date */ revokedAt?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; }; /** An api key */ export type ApiKeyEdge = { - cursor: Scalars['Cursor']; - node: ApiKey; + cursor?: Maybe; + node?: Maybe; }; /** An api key */ export type ApiKeyFilterInput = { and?: InputMaybe>>; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** ApiKey expiration date */ expiresAt?: InputMaybe; + /** Id */ id?: InputMaybe; /** ApiKey name */ name?: InputMaybe; @@ -373,20 +490,24 @@ export type ApiKeyFilterInput = { or?: InputMaybe>>; /** ApiKey revocation date */ revokedAt?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; }; /** An api key */ export type ApiKeyOrderByInput = { + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** ApiKey expiration date */ expiresAt?: InputMaybe; + /** Id */ id?: InputMaybe; /** ApiKey name */ name?: InputMaybe; /** ApiKey revocation date */ revokedAt?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; }; @@ -396,18 +517,36 @@ export type ApiKeyToken = { /** An api key */ export type ApiKeyUpdateInput = { + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** ApiKey expiration date */ expiresAt?: InputMaybe; + /** Id */ id?: InputMaybe; /** ApiKey name */ name?: InputMaybe; /** ApiKey revocation date */ revokedAt?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; }; +export type AppToken = { + createdAt: Scalars['DateTime']; + expiresAt: Scalars['DateTime']; + id: Scalars['ID']; + type: Scalars['String']; + updatedAt: Scalars['DateTime']; +}; + +export type AppTokenEdge = { + /** Cursor for this node. */ + cursor: Scalars['ConnectionCursor']; + /** The node containing the AppToken */ + node: AppToken; +}; + /** An attachment */ export type Attachment = { /** Attachment activity */ @@ -417,18 +556,20 @@ export type Attachment = { /** Attachment author */ author?: Maybe; /** Attachment author id foreign key */ - authorId: Scalars['ID']; + authorId?: Maybe; /** Attachment company */ company?: Maybe; /** Attachment company id foreign key */ companyId?: Maybe; - createdAt: Scalars['DateTime']; + /** Creation date */ + createdAt?: Maybe; deletedAt?: Maybe; /** Attachment full path */ - fullPath: Scalars['String']; - id: Scalars['ID']; + fullPath?: Maybe; + /** Id */ + id?: Maybe; /** Attachment name */ - name: Scalars['String']; + name?: Maybe; /** Attachment opportunity */ opportunity?: Maybe; /** Attachment opportunity id foreign key */ @@ -438,14 +579,15 @@ export type Attachment = { /** Attachment person id foreign key */ personId?: Maybe; /** Attachment type */ - type: Scalars['String']; - updatedAt: Scalars['DateTime']; + type?: Maybe; + /** Update date */ + updatedAt?: Maybe; }; /** An attachment */ export type AttachmentConnection = { - edges: Array; - pageInfo: PageInfo; + edges?: Maybe>; + pageInfo?: Maybe; /** Total number of records in the connection */ totalCount?: Maybe; }; @@ -458,10 +600,12 @@ export type AttachmentCreateInput = { authorId: Scalars['ID']; /** Attachment company id foreign key */ companyId?: InputMaybe; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** Attachment full path */ fullPath?: InputMaybe; + /** Id */ id?: InputMaybe; /** Attachment name */ name?: InputMaybe; @@ -471,13 +615,14 @@ export type AttachmentCreateInput = { personId?: InputMaybe; /** Attachment type */ type?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; }; /** An attachment */ export type AttachmentEdge = { - cursor: Scalars['Cursor']; - node: Attachment; + cursor?: Maybe; + node?: Maybe; }; /** An attachment */ @@ -489,10 +634,12 @@ export type AttachmentFilterInput = { authorId?: InputMaybe; /** Attachment company id foreign key */ companyId?: InputMaybe; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** Attachment full path */ fullPath?: InputMaybe; + /** Id */ id?: InputMaybe; /** Attachment name */ name?: InputMaybe; @@ -504,6 +651,7 @@ export type AttachmentFilterInput = { personId?: InputMaybe; /** Attachment type */ type?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; }; @@ -515,10 +663,12 @@ export type AttachmentOrderByInput = { authorId?: InputMaybe; /** Attachment company id foreign key */ companyId?: InputMaybe; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** Attachment full path */ fullPath?: InputMaybe; + /** Id */ id?: InputMaybe; /** Attachment name */ name?: InputMaybe; @@ -528,6 +678,7 @@ export type AttachmentOrderByInput = { personId?: InputMaybe; /** Attachment type */ type?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; }; @@ -539,10 +690,12 @@ export type AttachmentUpdateInput = { authorId?: InputMaybe; /** Attachment company id foreign key */ companyId?: InputMaybe; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** Attachment full path */ fullPath?: InputMaybe; + /** Id */ id?: InputMaybe; /** Attachment name */ name?: InputMaybe; @@ -552,6 +705,7 @@ export type AttachmentUpdateInput = { personId?: InputMaybe; /** Attachment type */ type?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; }; @@ -575,6 +729,10 @@ export type AuthTokens = { tokens: AuthTokenPair; }; +export type AuthorizeApp = { + redirectUrl: Scalars['String']; +}; + export type BigFloatFilter = { eq?: InputMaybe; gt?: InputMaybe; @@ -588,39 +746,67 @@ export type BigFloatFilter = { export type Billing = { billingFreeTrialDurationInDays?: Maybe; - billingUrl: Scalars['String']; + billingUrl?: Maybe; isBillingEnabled: Scalars['Boolean']; }; +export type BillingSubscription = { + id: Scalars['ID']; + interval?: Maybe; + status: Scalars['String']; +}; + +export type BillingSubscriptionFilter = { + and?: InputMaybe>; + id?: InputMaybe; + or?: InputMaybe>; +}; + +export type BillingSubscriptionSort = { + direction: SortDirection; + field: BillingSubscriptionSortFields; + nulls?: InputMaybe; +}; + +export enum BillingSubscriptionSortFields { + Id = 'id' +} + /** Blocklist */ export type Blocklist = { - createdAt: Scalars['DateTime']; + /** Creation date */ + createdAt?: Maybe; deletedAt?: Maybe; /** Handle */ - handle: Scalars['String']; - id: Scalars['ID']; - updatedAt: Scalars['DateTime']; + handle?: Maybe; + /** Id */ + id?: Maybe; + /** Update date */ + updatedAt?: Maybe; /** WorkspaceMember */ workspaceMember?: Maybe; /** WorkspaceMember id foreign key */ - workspaceMemberId: Scalars['ID']; + workspaceMemberId?: Maybe; }; /** Blocklist */ export type BlocklistConnection = { - edges: Array; - pageInfo: PageInfo; + edges?: Maybe>; + pageInfo?: Maybe; /** Total number of records in the connection */ totalCount?: Maybe; }; /** Blocklist */ export type BlocklistCreateInput = { + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** Handle */ handle?: InputMaybe; + /** Id */ id?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; /** WorkspaceMember id foreign key */ workspaceMemberId: Scalars['ID']; @@ -628,20 +814,23 @@ export type BlocklistCreateInput = { /** Blocklist */ export type BlocklistEdge = { - cursor: Scalars['Cursor']; - node: Blocklist; + cursor?: Maybe; + node?: Maybe; }; /** Blocklist */ export type BlocklistFilterInput = { and?: InputMaybe>>; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** Handle */ handle?: InputMaybe; + /** Id */ id?: InputMaybe; not?: InputMaybe; or?: InputMaybe>>; + /** Update date */ updatedAt?: InputMaybe; /** WorkspaceMember id foreign key */ workspaceMemberId?: InputMaybe; @@ -649,11 +838,14 @@ export type BlocklistFilterInput = { /** Blocklist */ export type BlocklistOrderByInput = { + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** Handle */ handle?: InputMaybe; + /** Id */ id?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; /** WorkspaceMember id foreign key */ workspaceMemberId?: InputMaybe; @@ -661,11 +853,14 @@ export type BlocklistOrderByInput = { /** Blocklist */ export type BlocklistUpdateInput = { + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** Handle */ handle?: InputMaybe; + /** Id */ id?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; /** WorkspaceMember id foreign key */ workspaceMemberId?: InputMaybe; @@ -681,8 +876,667 @@ export type BooleanFilter = { is?: InputMaybe; }; -export type CheckoutEntity = { - url: Scalars['String']; +/** Calendar Channels */ +export type CalendarChannel = { + /** Calendar Channel Event Associations */ + calendarChannelEventAssociations?: Maybe; + /** Connected Account */ + connectedAccount?: Maybe; + /** Connected Account id foreign key */ + connectedAccountId?: Maybe; + /** Creation date */ + createdAt?: Maybe; + deletedAt?: Maybe; + /** Handle */ + handle?: Maybe; + /** Id */ + id?: Maybe; + /** Is Contact Auto Creation Enabled */ + isContactAutoCreationEnabled?: Maybe; + /** Is Sync Enabled */ + isSyncEnabled?: Maybe; + /** Sync Cursor. Used for syncing events from the calendar provider */ + syncCursor?: Maybe; + /** Update date */ + updatedAt?: Maybe; + /** Visibility */ + visibility?: Maybe; +}; + + +/** Calendar Channels */ +export type CalendarChannelCalendarChannelEventAssociationsArgs = { + after?: InputMaybe; + before?: InputMaybe; + filter?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + orderBy?: InputMaybe; +}; + +/** Calendar Channels */ +export type CalendarChannelConnection = { + edges?: Maybe>; + pageInfo?: Maybe; + /** Total number of records in the connection */ + totalCount?: Maybe; +}; + +/** Calendar Channels */ +export type CalendarChannelCreateInput = { + /** Connected Account id foreign key */ + connectedAccountId: Scalars['ID']; + /** Creation date */ + createdAt?: InputMaybe; + deletedAt?: InputMaybe; + /** Handle */ + handle?: InputMaybe; + /** Id */ + id?: InputMaybe; + /** Is Contact Auto Creation Enabled */ + isContactAutoCreationEnabled?: InputMaybe; + /** Is Sync Enabled */ + isSyncEnabled?: InputMaybe; + /** Sync Cursor. Used for syncing events from the calendar provider */ + syncCursor?: InputMaybe; + /** Update date */ + updatedAt?: InputMaybe; + /** Visibility */ + visibility?: InputMaybe; +}; + +/** Calendar Channels */ +export type CalendarChannelEdge = { + cursor?: Maybe; + node?: Maybe; +}; + +/** Calendar Channel Event Associations */ +export type CalendarChannelEventAssociation = { + /** Channel ID */ + calendarChannel?: Maybe; + /** Channel ID id foreign key */ + calendarChannelId?: Maybe; + /** Event ID */ + calendarEvent?: Maybe; + /** Event ID id foreign key */ + calendarEventId?: Maybe; + /** Creation date */ + createdAt?: Maybe; + deletedAt?: Maybe; + /** Event external ID */ + eventExternalId?: Maybe; + /** Id */ + id?: Maybe; + /** Update date */ + updatedAt?: Maybe; +}; + +/** Calendar Channel Event Associations */ +export type CalendarChannelEventAssociationConnection = { + edges?: Maybe>; + pageInfo?: Maybe; + /** Total number of records in the connection */ + totalCount?: Maybe; +}; + +/** Calendar Channel Event Associations */ +export type CalendarChannelEventAssociationCreateInput = { + /** Channel ID id foreign key */ + calendarChannelId: Scalars['ID']; + /** Event ID id foreign key */ + calendarEventId: Scalars['ID']; + /** Creation date */ + createdAt?: InputMaybe; + deletedAt?: InputMaybe; + /** Event external ID */ + eventExternalId?: InputMaybe; + /** Id */ + id?: InputMaybe; + /** Update date */ + updatedAt?: InputMaybe; +}; + +/** Calendar Channel Event Associations */ +export type CalendarChannelEventAssociationEdge = { + cursor?: Maybe; + node?: Maybe; +}; + +/** Calendar Channel Event Associations */ +export type CalendarChannelEventAssociationFilterInput = { + and?: InputMaybe>>; + /** Channel ID id foreign key */ + calendarChannelId?: InputMaybe; + /** Event ID id foreign key */ + calendarEventId?: InputMaybe; + /** Creation date */ + createdAt?: InputMaybe; + deletedAt?: InputMaybe; + /** Event external ID */ + eventExternalId?: InputMaybe; + /** Id */ + id?: InputMaybe; + not?: InputMaybe; + or?: InputMaybe>>; + /** Update date */ + updatedAt?: InputMaybe; +}; + +/** Calendar Channel Event Associations */ +export type CalendarChannelEventAssociationOrderByInput = { + /** Channel ID id foreign key */ + calendarChannelId?: InputMaybe; + /** Event ID id foreign key */ + calendarEventId?: InputMaybe; + /** Creation date */ + createdAt?: InputMaybe; + deletedAt?: InputMaybe; + /** Event external ID */ + eventExternalId?: InputMaybe; + /** Id */ + id?: InputMaybe; + /** Update date */ + updatedAt?: InputMaybe; +}; + +/** Calendar Channel Event Associations */ +export type CalendarChannelEventAssociationUpdateInput = { + /** Channel ID id foreign key */ + calendarChannelId?: InputMaybe; + /** Event ID id foreign key */ + calendarEventId?: InputMaybe; + /** Creation date */ + createdAt?: InputMaybe; + deletedAt?: InputMaybe; + /** Event external ID */ + eventExternalId?: InputMaybe; + /** Id */ + id?: InputMaybe; + /** Update date */ + updatedAt?: InputMaybe; +}; + +/** Calendar Channels */ +export type CalendarChannelFilterInput = { + and?: InputMaybe>>; + /** Connected Account id foreign key */ + connectedAccountId?: InputMaybe; + /** Creation date */ + createdAt?: InputMaybe; + deletedAt?: InputMaybe; + /** Handle */ + handle?: InputMaybe; + /** Id */ + id?: InputMaybe; + /** Is Contact Auto Creation Enabled */ + isContactAutoCreationEnabled?: InputMaybe; + /** Is Sync Enabled */ + isSyncEnabled?: InputMaybe; + not?: InputMaybe; + or?: InputMaybe>>; + /** Sync Cursor. Used for syncing events from the calendar provider */ + syncCursor?: InputMaybe; + /** Update date */ + updatedAt?: InputMaybe; + /** Visibility */ + visibility?: InputMaybe; +}; + +/** Calendar Channels */ +export type CalendarChannelOrderByInput = { + /** Connected Account id foreign key */ + connectedAccountId?: InputMaybe; + /** Creation date */ + createdAt?: InputMaybe; + deletedAt?: InputMaybe; + /** Handle */ + handle?: InputMaybe; + /** Id */ + id?: InputMaybe; + /** Is Contact Auto Creation Enabled */ + isContactAutoCreationEnabled?: InputMaybe; + /** Is Sync Enabled */ + isSyncEnabled?: InputMaybe; + /** Sync Cursor. Used for syncing events from the calendar provider */ + syncCursor?: InputMaybe; + /** Update date */ + updatedAt?: InputMaybe; + /** Visibility */ + visibility?: InputMaybe; +}; + +/** Calendar Channels */ +export type CalendarChannelUpdateInput = { + /** Connected Account id foreign key */ + connectedAccountId?: InputMaybe; + /** Creation date */ + createdAt?: InputMaybe; + deletedAt?: InputMaybe; + /** Handle */ + handle?: InputMaybe; + /** Id */ + id?: InputMaybe; + /** Is Contact Auto Creation Enabled */ + isContactAutoCreationEnabled?: InputMaybe; + /** Is Sync Enabled */ + isSyncEnabled?: InputMaybe; + /** Sync Cursor. Used for syncing events from the calendar provider */ + syncCursor?: InputMaybe; + /** Update date */ + updatedAt?: InputMaybe; + /** Visibility */ + visibility?: InputMaybe; +}; + +/** Visibility */ +export enum CalendarChannelVisibilityEnum { + /** Metadata */ + Metadata = 'METADATA', + /** Share Everything */ + ShareEverything = 'SHARE_EVERYTHING' +} + +export type CalendarChannelVisibilityEnumFilter = { + eq?: InputMaybe; + in?: InputMaybe>>; + is?: InputMaybe; + neq?: InputMaybe; +}; + +/** Calendar events */ +export type CalendarEvent = { + /** Calendar Channel Event Associations */ + calendarChannelEventAssociations?: Maybe; + /** Meet Link */ + conferenceLink?: Maybe; + /** Conference Solution */ + conferenceSolution?: Maybe; + /** Creation date */ + createdAt?: Maybe; + deletedAt?: Maybe; + /** Description */ + description?: Maybe; + /** End Date */ + endsAt?: Maybe; + /** Event Participants */ + eventParticipants?: Maybe; + /** Creation DateTime */ + externalCreatedAt?: Maybe; + /** Update DateTime */ + externalUpdatedAt?: Maybe; + /** iCal UID */ + iCalUID?: Maybe; + /** Id */ + id?: Maybe; + /** Is canceled */ + isCanceled?: Maybe; + /** Is Full Day */ + isFullDay?: Maybe; + /** Location */ + location?: Maybe; + /** Recurring Event ID */ + recurringEventExternalId?: Maybe; + /** Start Date */ + startsAt?: Maybe; + /** Title */ + title?: Maybe; + /** Update date */ + updatedAt?: Maybe; +}; + + +/** Calendar events */ +export type CalendarEventCalendarChannelEventAssociationsArgs = { + after?: InputMaybe; + before?: InputMaybe; + filter?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + orderBy?: InputMaybe; +}; + + +/** Calendar events */ +export type CalendarEventEventParticipantsArgs = { + after?: InputMaybe; + before?: InputMaybe; + filter?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + orderBy?: InputMaybe; +}; + +/** Calendar events */ +export type CalendarEventConnection = { + edges?: Maybe>; + pageInfo?: Maybe; + /** Total number of records in the connection */ + totalCount?: Maybe; +}; + +/** Calendar events */ +export type CalendarEventCreateInput = { + /** Meet Link */ + conferenceLink?: InputMaybe; + /** Conference Solution */ + conferenceSolution?: InputMaybe; + /** Creation date */ + createdAt?: InputMaybe; + deletedAt?: InputMaybe; + /** Description */ + description?: InputMaybe; + /** End Date */ + endsAt?: InputMaybe; + /** Creation DateTime */ + externalCreatedAt?: InputMaybe; + /** Update DateTime */ + externalUpdatedAt?: InputMaybe; + /** iCal UID */ + iCalUID?: InputMaybe; + /** Id */ + id?: InputMaybe; + /** Is canceled */ + isCanceled: Scalars['Boolean']; + /** Is Full Day */ + isFullDay: Scalars['Boolean']; + /** Location */ + location?: InputMaybe; + /** Recurring Event ID */ + recurringEventExternalId?: InputMaybe; + /** Start Date */ + startsAt?: InputMaybe; + /** Title */ + title?: InputMaybe; + /** Update date */ + updatedAt?: InputMaybe; +}; + +/** Calendar events */ +export type CalendarEventEdge = { + cursor?: Maybe; + node?: Maybe; +}; + +/** Calendar events */ +export type CalendarEventFilterInput = { + and?: InputMaybe>>; + /** Meet Link */ + conferenceLink?: InputMaybe; + /** Conference Solution */ + conferenceSolution?: InputMaybe; + /** Creation date */ + createdAt?: InputMaybe; + deletedAt?: InputMaybe; + /** Description */ + description?: InputMaybe; + /** End Date */ + endsAt?: InputMaybe; + /** Creation DateTime */ + externalCreatedAt?: InputMaybe; + /** Update DateTime */ + externalUpdatedAt?: InputMaybe; + /** iCal UID */ + iCalUID?: InputMaybe; + /** Id */ + id?: InputMaybe; + /** Is canceled */ + isCanceled?: InputMaybe; + /** Is Full Day */ + isFullDay?: InputMaybe; + /** Location */ + location?: InputMaybe; + not?: InputMaybe; + or?: InputMaybe>>; + /** Recurring Event ID */ + recurringEventExternalId?: InputMaybe; + /** Start Date */ + startsAt?: InputMaybe; + /** Title */ + title?: InputMaybe; + /** Update date */ + updatedAt?: InputMaybe; +}; + +/** Calendar events */ +export type CalendarEventOrderByInput = { + /** Meet Link */ + conferenceLink?: InputMaybe; + /** Conference Solution */ + conferenceSolution?: InputMaybe; + /** Creation date */ + createdAt?: InputMaybe; + deletedAt?: InputMaybe; + /** Description */ + description?: InputMaybe; + /** End Date */ + endsAt?: InputMaybe; + /** Creation DateTime */ + externalCreatedAt?: InputMaybe; + /** Update DateTime */ + externalUpdatedAt?: InputMaybe; + /** iCal UID */ + iCalUID?: InputMaybe; + /** Id */ + id?: InputMaybe; + /** Is canceled */ + isCanceled?: InputMaybe; + /** Is Full Day */ + isFullDay?: InputMaybe; + /** Location */ + location?: InputMaybe; + /** Recurring Event ID */ + recurringEventExternalId?: InputMaybe; + /** Start Date */ + startsAt?: InputMaybe; + /** Title */ + title?: InputMaybe; + /** Update date */ + updatedAt?: InputMaybe; +}; + +/** Calendar event participants */ +export type CalendarEventParticipant = { + /** Event ID */ + calendarEvent?: Maybe; + /** Event ID id foreign key */ + calendarEventId?: Maybe; + /** Creation date */ + createdAt?: Maybe; + deletedAt?: Maybe; + /** Display Name */ + displayName?: Maybe; + /** Handle */ + handle?: Maybe; + /** Id */ + id?: Maybe; + /** Is Organizer */ + isOrganizer?: Maybe; + /** Person */ + person?: Maybe; + /** Person id foreign key */ + personId?: Maybe; + /** Response Status */ + responseStatus?: Maybe; + /** Update date */ + updatedAt?: Maybe; + /** Workspace Member */ + workspaceMember?: Maybe; + /** Workspace Member id foreign key */ + workspaceMemberId?: Maybe; +}; + +/** Calendar event participants */ +export type CalendarEventParticipantConnection = { + edges?: Maybe>; + pageInfo?: Maybe; + /** Total number of records in the connection */ + totalCount?: Maybe; +}; + +/** Calendar event participants */ +export type CalendarEventParticipantCreateInput = { + /** Event ID id foreign key */ + calendarEventId: Scalars['ID']; + /** Creation date */ + createdAt?: InputMaybe; + deletedAt?: InputMaybe; + /** Display Name */ + displayName?: InputMaybe; + /** Handle */ + handle?: InputMaybe; + /** Id */ + id?: InputMaybe; + /** Is Organizer */ + isOrganizer?: InputMaybe; + /** Person id foreign key */ + personId?: InputMaybe; + /** Response Status */ + responseStatus?: InputMaybe; + /** Update date */ + updatedAt?: InputMaybe; + /** Workspace Member id foreign key */ + workspaceMemberId?: InputMaybe; +}; + +/** Calendar event participants */ +export type CalendarEventParticipantEdge = { + cursor?: Maybe; + node?: Maybe; +}; + +/** Calendar event participants */ +export type CalendarEventParticipantFilterInput = { + and?: InputMaybe>>; + /** Event ID id foreign key */ + calendarEventId?: InputMaybe; + /** Creation date */ + createdAt?: InputMaybe; + deletedAt?: InputMaybe; + /** Display Name */ + displayName?: InputMaybe; + /** Handle */ + handle?: InputMaybe; + /** Id */ + id?: InputMaybe; + /** Is Organizer */ + isOrganizer?: InputMaybe; + not?: InputMaybe; + or?: InputMaybe>>; + /** Person id foreign key */ + personId?: InputMaybe; + /** Response Status */ + responseStatus?: InputMaybe; + /** Update date */ + updatedAt?: InputMaybe; + /** Workspace Member id foreign key */ + workspaceMemberId?: InputMaybe; +}; + +/** Calendar event participants */ +export type CalendarEventParticipantOrderByInput = { + /** Event ID id foreign key */ + calendarEventId?: InputMaybe; + /** Creation date */ + createdAt?: InputMaybe; + deletedAt?: InputMaybe; + /** Display Name */ + displayName?: InputMaybe; + /** Handle */ + handle?: InputMaybe; + /** Id */ + id?: InputMaybe; + /** Is Organizer */ + isOrganizer?: InputMaybe; + /** Person id foreign key */ + personId?: InputMaybe; + /** Response Status */ + responseStatus?: InputMaybe; + /** Update date */ + updatedAt?: InputMaybe; + /** Workspace Member id foreign key */ + workspaceMemberId?: InputMaybe; +}; + +/** Response Status */ +export enum CalendarEventParticipantResponseStatusEnum { + /** Accepted */ + Accepted = 'ACCEPTED', + /** Declined */ + Declined = 'DECLINED', + /** Needs Action */ + NeedsAction = 'NEEDS_ACTION', + /** Tentative */ + Tentative = 'TENTATIVE' +} + +export type CalendarEventParticipantResponseStatusEnumFilter = { + eq?: InputMaybe; + in?: InputMaybe>>; + is?: InputMaybe; + neq?: InputMaybe; +}; + +/** Calendar event participants */ +export type CalendarEventParticipantUpdateInput = { + /** Event ID id foreign key */ + calendarEventId?: InputMaybe; + /** Creation date */ + createdAt?: InputMaybe; + deletedAt?: InputMaybe; + /** Display Name */ + displayName?: InputMaybe; + /** Handle */ + handle?: InputMaybe; + /** Id */ + id?: InputMaybe; + /** Is Organizer */ + isOrganizer?: InputMaybe; + /** Person id foreign key */ + personId?: InputMaybe; + /** Response Status */ + responseStatus?: InputMaybe; + /** Update date */ + updatedAt?: InputMaybe; + /** Workspace Member id foreign key */ + workspaceMemberId?: InputMaybe; +}; + +/** Calendar events */ +export type CalendarEventUpdateInput = { + /** Meet Link */ + conferenceLink?: InputMaybe; + /** Conference Solution */ + conferenceSolution?: InputMaybe; + /** Creation date */ + createdAt?: InputMaybe; + deletedAt?: InputMaybe; + /** Description */ + description?: InputMaybe; + /** End Date */ + endsAt?: InputMaybe; + /** Creation DateTime */ + externalCreatedAt?: InputMaybe; + /** Update DateTime */ + externalUpdatedAt?: InputMaybe; + /** iCal UID */ + iCalUID?: InputMaybe; + /** Id */ + id?: InputMaybe; + /** Is canceled */ + isCanceled?: InputMaybe; + /** Is Full Day */ + isFullDay?: InputMaybe; + /** Location */ + location?: InputMaybe; + /** Recurring Event ID */ + recurringEventExternalId?: InputMaybe; + /** Start Date */ + startsAt?: InputMaybe; + /** Title */ + title?: InputMaybe; + /** Update date */ + updatedAt?: InputMaybe; }; export type ClientConfig = { @@ -701,23 +1555,26 @@ export type Comment = { /** Comment activity */ activity?: Maybe; /** Comment activity id foreign key */ - activityId: Scalars['ID']; + activityId?: Maybe; /** Comment author */ author?: Maybe; /** Comment author id foreign key */ - authorId: Scalars['ID']; + authorId?: Maybe; /** Comment body */ - body: Scalars['String']; - createdAt: Scalars['DateTime']; + body?: Maybe; + /** Creation date */ + createdAt?: Maybe; deletedAt?: Maybe; - id: Scalars['ID']; - updatedAt: Scalars['DateTime']; + /** Id */ + id?: Maybe; + /** Update date */ + updatedAt?: Maybe; }; /** A comment */ export type CommentConnection = { - edges: Array; - pageInfo: PageInfo; + edges?: Maybe>; + pageInfo?: Maybe; /** Total number of records in the connection */ totalCount?: Maybe; }; @@ -730,16 +1587,19 @@ export type CommentCreateInput = { authorId: Scalars['ID']; /** Comment body */ body?: InputMaybe; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; + /** Id */ id?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; }; /** A comment */ export type CommentEdge = { - cursor: Scalars['Cursor']; - node: Comment; + cursor?: Maybe; + node?: Maybe; }; /** A comment */ @@ -751,11 +1611,14 @@ export type CommentFilterInput = { authorId?: InputMaybe; /** Comment body */ body?: InputMaybe; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; + /** Id */ id?: InputMaybe; not?: InputMaybe; or?: InputMaybe>>; + /** Update date */ updatedAt?: InputMaybe; }; @@ -767,9 +1630,12 @@ export type CommentOrderByInput = { authorId?: InputMaybe; /** Comment body */ body?: InputMaybe; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; + /** Id */ id?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; }; @@ -781,9 +1647,12 @@ export type CommentUpdateInput = { authorId?: InputMaybe; /** Comment body */ body?: InputMaybe; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; + /** Id */ id?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; }; @@ -796,33 +1665,38 @@ export type Company = { /** Activities tied to the company */ activityTargets?: Maybe; /** The company address */ - address: Scalars['String']; + address?: Maybe; /** Annual Recurring Revenue: The actual or estimated annual revenue of the company */ annualRecurringRevenue?: Maybe; /** Attachments linked to the company. */ attachments?: Maybe; - createdAt: Scalars['DateTime']; + /** Creation date */ + createdAt?: Maybe; deletedAt?: Maybe; /** The company website URL. We use this url to fetch the company icon */ - domainName: Scalars['String']; + domainName?: Maybe; /** Number of employees in the company */ employees?: Maybe; + /** Events linked to the company */ + events?: Maybe; /** Favorites linked to the company */ favorites?: Maybe; - id: Scalars['ID']; + /** Id */ + id?: Maybe; /** Ideal Customer Profile: Indicates whether the company is the most suitable and valuable customer for you */ - idealCustomerProfile: Scalars['Boolean']; + idealCustomerProfile?: Maybe; /** The company Linkedin account */ linkedinLink?: Maybe; /** The company name */ - name: Scalars['String']; + name?: Maybe; /** Opportunities linked to the company. */ opportunities?: Maybe; /** People linked to the company. */ people?: Maybe; - /** Position */ - position?: Maybe; - updatedAt: Scalars['DateTime']; + /** Company record position */ + position?: Maybe; + /** Update date */ + updatedAt?: Maybe; /** The company Twitter/X account */ xLink?: Maybe; }; @@ -850,6 +1724,17 @@ export type CompanyAttachmentsArgs = { }; +/** A company */ +export type CompanyEventsArgs = { + after?: InputMaybe; + before?: InputMaybe; + filter?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + orderBy?: InputMaybe; +}; + + /** A company */ export type CompanyFavoritesArgs = { after?: InputMaybe; @@ -884,8 +1769,8 @@ export type CompanyPeopleArgs = { /** A company */ export type CompanyConnection = { - edges: Array; - pageInfo: PageInfo; + edges?: Maybe>; + pageInfo?: Maybe; /** Total number of records in the connection */ totalCount?: Maybe; }; @@ -898,12 +1783,14 @@ export type CompanyCreateInput = { address?: InputMaybe; /** Annual Recurring Revenue: The actual or estimated annual revenue of the company */ annualRecurringRevenue?: InputMaybe; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** The company website URL. We use this url to fetch the company icon */ domainName?: InputMaybe; /** Number of employees in the company */ employees?: InputMaybe; + /** Id */ id?: InputMaybe; /** Ideal Customer Profile: Indicates whether the company is the most suitable and valuable customer for you */ idealCustomerProfile?: InputMaybe; @@ -911,8 +1798,9 @@ export type CompanyCreateInput = { linkedinLink?: InputMaybe; /** The company name */ name?: InputMaybe; - /** Position */ - position?: InputMaybe; + /** Company record position */ + position?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; /** The company Twitter/X account */ xLink?: InputMaybe; @@ -920,8 +1808,8 @@ export type CompanyCreateInput = { /** A company */ export type CompanyEdge = { - cursor: Scalars['Cursor']; - node: Company; + cursor?: Maybe; + node?: Maybe; }; /** A company */ @@ -933,12 +1821,14 @@ export type CompanyFilterInput = { and?: InputMaybe>>; /** Annual Recurring Revenue: The actual or estimated annual revenue of the company */ annualRecurringRevenue?: InputMaybe; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** The company website URL. We use this url to fetch the company icon */ domainName?: InputMaybe; /** Number of employees in the company */ employees?: InputMaybe; + /** Id */ id?: InputMaybe; /** Ideal Customer Profile: Indicates whether the company is the most suitable and valuable customer for you */ idealCustomerProfile?: InputMaybe; @@ -948,8 +1838,9 @@ export type CompanyFilterInput = { name?: InputMaybe; not?: InputMaybe; or?: InputMaybe>>; - /** Position */ + /** Company record position */ position?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; /** The company Twitter/X account */ xLink?: InputMaybe; @@ -963,12 +1854,14 @@ export type CompanyOrderByInput = { address?: InputMaybe; /** Annual Recurring Revenue: The actual or estimated annual revenue of the company */ annualRecurringRevenue?: InputMaybe; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** The company website URL. We use this url to fetch the company icon */ domainName?: InputMaybe; /** Number of employees in the company */ employees?: InputMaybe; + /** Id */ id?: InputMaybe; /** Ideal Customer Profile: Indicates whether the company is the most suitable and valuable customer for you */ idealCustomerProfile?: InputMaybe; @@ -976,8 +1869,9 @@ export type CompanyOrderByInput = { linkedinLink?: InputMaybe; /** The company name */ name?: InputMaybe; - /** Position */ + /** Company record position */ position?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; /** The company Twitter/X account */ xLink?: InputMaybe; @@ -991,12 +1885,14 @@ export type CompanyUpdateInput = { address?: InputMaybe; /** Annual Recurring Revenue: The actual or estimated annual revenue of the company */ annualRecurringRevenue?: InputMaybe; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** The company website URL. We use this url to fetch the company icon */ domainName?: InputMaybe; /** Number of employees in the company */ employees?: InputMaybe; + /** Id */ id?: InputMaybe; /** Ideal Customer Profile: Indicates whether the company is the most suitable and valuable customer for you */ idealCustomerProfile?: InputMaybe; @@ -1004,8 +1900,9 @@ export type CompanyUpdateInput = { linkedinLink?: InputMaybe; /** The company name */ name?: InputMaybe; - /** Position */ - position?: InputMaybe; + /** Company record position */ + position?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; /** The company Twitter/X account */ xLink?: InputMaybe; @@ -1014,25 +1911,43 @@ export type CompanyUpdateInput = { /** A connected account */ export type ConnectedAccount = { /** Messaging provider access token */ - accessToken: Scalars['String']; + accessToken?: Maybe; /** Account Owner */ accountOwner?: Maybe; /** Account Owner id foreign key */ - accountOwnerId: Scalars['ID']; - createdAt: Scalars['DateTime']; + accountOwnerId?: Maybe; + /** Auth failed at */ + authFailedAt?: Maybe; + /** Calendar Channel */ + calendarChannels?: Maybe; + /** Creation date */ + createdAt?: Maybe; deletedAt?: Maybe; /** The account handle (email, username, phone number, etc.) */ - handle: Scalars['String']; - id: Scalars['ID']; + handle?: Maybe; + /** Id */ + id?: Maybe; /** Last sync history ID */ - lastSyncHistoryId: Scalars['String']; + lastSyncHistoryId?: Maybe; /** Message Channel */ messageChannels?: Maybe; /** The account provider */ - provider: Scalars['String']; + provider?: Maybe; /** Messaging provider refresh token */ - refreshToken: Scalars['String']; - updatedAt: Scalars['DateTime']; + refreshToken?: Maybe; + /** Update date */ + updatedAt?: Maybe; +}; + + +/** A connected account */ +export type ConnectedAccountCalendarChannelsArgs = { + after?: InputMaybe; + before?: InputMaybe; + filter?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + orderBy?: InputMaybe; }; @@ -1048,8 +1963,8 @@ export type ConnectedAccountMessageChannelsArgs = { /** A connected account */ export type ConnectedAccountConnection = { - edges: Array; - pageInfo: PageInfo; + edges?: Maybe>; + pageInfo?: Maybe; /** Total number of records in the connection */ totalCount?: Maybe; }; @@ -1060,10 +1975,14 @@ export type ConnectedAccountCreateInput = { accessToken?: InputMaybe; /** Account Owner id foreign key */ accountOwnerId: Scalars['ID']; + /** Auth failed at */ + authFailedAt?: InputMaybe; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** The account handle (email, username, phone number, etc.) */ handle?: InputMaybe; + /** Id */ id?: InputMaybe; /** Last sync history ID */ lastSyncHistoryId?: InputMaybe; @@ -1071,13 +1990,14 @@ export type ConnectedAccountCreateInput = { provider?: InputMaybe; /** Messaging provider refresh token */ refreshToken?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; }; /** A connected account */ export type ConnectedAccountEdge = { - cursor: Scalars['Cursor']; - node: ConnectedAccount; + cursor?: Maybe; + node?: Maybe; }; /** A connected account */ @@ -1087,10 +2007,14 @@ export type ConnectedAccountFilterInput = { /** Account Owner id foreign key */ accountOwnerId?: InputMaybe; and?: InputMaybe>>; + /** Auth failed at */ + authFailedAt?: InputMaybe; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** The account handle (email, username, phone number, etc.) */ handle?: InputMaybe; + /** Id */ id?: InputMaybe; /** Last sync history ID */ lastSyncHistoryId?: InputMaybe; @@ -1100,6 +2024,7 @@ export type ConnectedAccountFilterInput = { provider?: InputMaybe; /** Messaging provider refresh token */ refreshToken?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; }; @@ -1109,10 +2034,14 @@ export type ConnectedAccountOrderByInput = { accessToken?: InputMaybe; /** Account Owner id foreign key */ accountOwnerId?: InputMaybe; + /** Auth failed at */ + authFailedAt?: InputMaybe; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** The account handle (email, username, phone number, etc.) */ handle?: InputMaybe; + /** Id */ id?: InputMaybe; /** Last sync history ID */ lastSyncHistoryId?: InputMaybe; @@ -1120,6 +2049,7 @@ export type ConnectedAccountOrderByInput = { provider?: InputMaybe; /** Messaging provider refresh token */ refreshToken?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; }; @@ -1129,10 +2059,14 @@ export type ConnectedAccountUpdateInput = { accessToken?: InputMaybe; /** Account Owner id foreign key */ accountOwnerId?: InputMaybe; + /** Auth failed at */ + authFailedAt?: InputMaybe; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** The account handle (email, username, phone number, etc.) */ handle?: InputMaybe; + /** Id */ id?: InputMaybe; /** Last sync history ID */ lastSyncHistoryId?: InputMaybe; @@ -1140,6 +2074,7 @@ export type ConnectedAccountUpdateInput = { provider?: InputMaybe; /** Messaging provider refresh token */ refreshToken?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; }; @@ -1223,15 +2158,163 @@ export type EmailPasswordResetLink = { success: Scalars['Boolean']; }; +/** An event */ +export type Event = { + /** Event company */ + company?: Maybe; + /** Event company id foreign key */ + companyId?: Maybe; + /** Creation date */ + createdAt?: Maybe; + deletedAt?: Maybe; + /** Id */ + id?: Maybe; + /** Event name/type */ + name?: Maybe; + /** Events opportunity */ + opportunity?: Maybe; + /** Events opportunity id foreign key */ + opportunityId?: Maybe; + /** Event person */ + person?: Maybe; + /** Event person id foreign key */ + personId?: Maybe; + /** Json value for event details */ + properties?: Maybe; + /** Update date */ + updatedAt?: Maybe; + /** Event workspace member */ + workspaceMember?: Maybe; + /** Event workspace member id foreign key */ + workspaceMemberId?: Maybe; +}; + +/** An event */ +export type EventConnection = { + edges?: Maybe>; + pageInfo?: Maybe; + /** Total number of records in the connection */ + totalCount?: Maybe; +}; + +/** An event */ +export type EventCreateInput = { + /** Event company id foreign key */ + companyId?: InputMaybe; + /** Creation date */ + createdAt?: InputMaybe; + deletedAt?: InputMaybe; + /** Id */ + id?: InputMaybe; + /** Event name/type */ + name?: InputMaybe; + /** Events opportunity id foreign key */ + opportunityId?: InputMaybe; + /** Event person id foreign key */ + personId?: InputMaybe; + /** Json value for event details */ + properties?: InputMaybe; + /** Update date */ + updatedAt?: InputMaybe; + /** Event workspace member id foreign key */ + workspaceMemberId?: InputMaybe; +}; + +/** An event */ +export type EventEdge = { + cursor?: Maybe; + node?: Maybe; +}; + +/** An event */ +export type EventFilterInput = { + and?: InputMaybe>>; + /** Event company id foreign key */ + companyId?: InputMaybe; + /** Creation date */ + createdAt?: InputMaybe; + deletedAt?: InputMaybe; + /** Id */ + id?: InputMaybe; + /** Event name/type */ + name?: InputMaybe; + not?: InputMaybe; + /** Events opportunity id foreign key */ + opportunityId?: InputMaybe; + or?: InputMaybe>>; + /** Event person id foreign key */ + personId?: InputMaybe; + /** Json value for event details */ + properties?: InputMaybe; + /** Update date */ + updatedAt?: InputMaybe; + /** Event workspace member id foreign key */ + workspaceMemberId?: InputMaybe; +}; + +/** An event */ +export type EventOrderByInput = { + /** Event company id foreign key */ + companyId?: InputMaybe; + /** Creation date */ + createdAt?: InputMaybe; + deletedAt?: InputMaybe; + /** Id */ + id?: InputMaybe; + /** Event name/type */ + name?: InputMaybe; + /** Events opportunity id foreign key */ + opportunityId?: InputMaybe; + /** Event person id foreign key */ + personId?: InputMaybe; + /** Json value for event details */ + properties?: InputMaybe; + /** Update date */ + updatedAt?: InputMaybe; + /** Event workspace member id foreign key */ + workspaceMemberId?: InputMaybe; +}; + +/** An event */ +export type EventUpdateInput = { + /** Event company id foreign key */ + companyId?: InputMaybe; + /** Creation date */ + createdAt?: InputMaybe; + deletedAt?: InputMaybe; + /** Id */ + id?: InputMaybe; + /** Event name/type */ + name?: InputMaybe; + /** Events opportunity id foreign key */ + opportunityId?: InputMaybe; + /** Event person id foreign key */ + personId?: InputMaybe; + /** Json value for event details */ + properties?: InputMaybe; + /** Update date */ + updatedAt?: InputMaybe; + /** Event workspace member id foreign key */ + workspaceMemberId?: InputMaybe; +}; + +export type ExchangeAuthCode = { + accessToken: AuthToken; + loginToken: AuthToken; + refreshToken: AuthToken; +}; + /** A favorite */ export type Favorite = { /** Favorite company */ company?: Maybe; /** Favorite company id foreign key */ companyId?: Maybe; - createdAt: Scalars['DateTime']; + /** Creation date */ + createdAt?: Maybe; deletedAt?: Maybe; - id: Scalars['ID']; + /** Id */ + id?: Maybe; /** Favorite opportunity */ opportunity?: Maybe; /** Favorite opportunity id foreign key */ @@ -1241,18 +2324,19 @@ export type Favorite = { /** Favorite person id foreign key */ personId?: Maybe; /** Favorite position */ - position: Scalars['Float']; - updatedAt: Scalars['DateTime']; + position?: Maybe; + /** Update date */ + updatedAt?: Maybe; /** Favorite workspace member */ workspaceMember?: Maybe; /** Favorite workspace member id foreign key */ - workspaceMemberId: Scalars['ID']; + workspaceMemberId?: Maybe; }; /** A favorite */ export type FavoriteConnection = { - edges: Array; - pageInfo: PageInfo; + edges?: Maybe>; + pageInfo?: Maybe; /** Total number of records in the connection */ totalCount?: Maybe; }; @@ -1261,8 +2345,10 @@ export type FavoriteConnection = { export type FavoriteCreateInput = { /** Favorite company id foreign key */ companyId?: InputMaybe; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; + /** Id */ id?: InputMaybe; /** Favorite opportunity id foreign key */ opportunityId?: InputMaybe; @@ -1270,6 +2356,7 @@ export type FavoriteCreateInput = { personId?: InputMaybe; /** Favorite position */ position?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; /** Favorite workspace member id foreign key */ workspaceMemberId: Scalars['ID']; @@ -1277,8 +2364,8 @@ export type FavoriteCreateInput = { /** A favorite */ export type FavoriteEdge = { - cursor: Scalars['Cursor']; - node: Favorite; + cursor?: Maybe; + node?: Maybe; }; /** A favorite */ @@ -1286,8 +2373,10 @@ export type FavoriteFilterInput = { and?: InputMaybe>>; /** Favorite company id foreign key */ companyId?: InputMaybe; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; + /** Id */ id?: InputMaybe; not?: InputMaybe; /** Favorite opportunity id foreign key */ @@ -1297,6 +2386,7 @@ export type FavoriteFilterInput = { personId?: InputMaybe; /** Favorite position */ position?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; /** Favorite workspace member id foreign key */ workspaceMemberId?: InputMaybe; @@ -1306,8 +2396,10 @@ export type FavoriteFilterInput = { export type FavoriteOrderByInput = { /** Favorite company id foreign key */ companyId?: InputMaybe; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; + /** Id */ id?: InputMaybe; /** Favorite opportunity id foreign key */ opportunityId?: InputMaybe; @@ -1315,6 +2407,7 @@ export type FavoriteOrderByInput = { personId?: InputMaybe; /** Favorite position */ position?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; /** Favorite workspace member id foreign key */ workspaceMemberId?: InputMaybe; @@ -1324,8 +2417,10 @@ export type FavoriteOrderByInput = { export type FavoriteUpdateInput = { /** Favorite company id foreign key */ companyId?: InputMaybe; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; + /** Id */ id?: InputMaybe; /** Favorite opportunity id foreign key */ opportunityId?: InputMaybe; @@ -1333,6 +2428,7 @@ export type FavoriteUpdateInput = { personId?: InputMaybe; /** Favorite position */ position?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; /** Favorite workspace member id foreign key */ workspaceMemberId?: InputMaybe; @@ -1366,29 +2462,11 @@ export type FieldConnection = { edges: Array; /** Paging information */ pageInfo: PageInfo; - /** Fetch total count of records */ - totalCount: Scalars['Int']; -}; - -export type FieldDeleteResponse = { - createdAt?: Maybe; - defaultValue?: Maybe; - description?: Maybe; - icon?: Maybe; - id?: Maybe; - isActive?: Maybe; - isCustom?: Maybe; - isNullable?: Maybe; - isSystem?: Maybe; - label?: Maybe; - name?: Maybe; - options?: Maybe; - type?: Maybe; - updatedAt?: Maybe; }; /** Type of the field */ export enum FieldMetadataType { + Address = 'ADDRESS', Boolean = 'BOOLEAN', Currency = 'CURRENCY', Date = 'DATE', @@ -1400,8 +2478,10 @@ export enum FieldMetadataType { Number = 'NUMBER', Numeric = 'NUMERIC', Phone = 'PHONE', + Position = 'POSITION', Probability = 'PROBABILITY', Rating = 'RATING', + RawJson = 'RAW_JSON', Relation = 'RELATION', Select = 'SELECT', Text = 'TEXT', @@ -1534,6 +2614,11 @@ export type LinkFilterInput = { url?: InputMaybe; }; +export type LinkMetadata = { + label: Scalars['String']; + url: Scalars['String']; +}; + export type LinkOrderByInput = { createdAt?: InputMaybe; deletedAt?: InputMaybe; @@ -1558,13 +2643,15 @@ export type LoginToken = { /** Message */ export type Message = { - createdAt: Scalars['DateTime']; + /** Creation date */ + createdAt?: Maybe; deletedAt?: Maybe; /** Message Direction */ - direction: MessageDirectionEnum; + direction?: Maybe; /** Message id from the message header */ - headerMessageId: Scalars['String']; - id: Scalars['ID']; + headerMessageId?: Maybe; + /** Id */ + id?: Maybe; /** Messages from the channel. */ messageChannelMessageAssociations?: Maybe; /** Message Participants */ @@ -1576,10 +2663,11 @@ export type Message = { /** The date the message was received */ receivedAt?: Maybe; /** Subject */ - subject: Scalars['String']; + subject?: Maybe; /** Text */ - text: Scalars['String']; - updatedAt: Scalars['DateTime']; + text?: Maybe; + /** Update date */ + updatedAt?: Maybe; }; @@ -1609,21 +2697,32 @@ export type MessageChannel = { /** Connected Account */ connectedAccount?: Maybe; /** Connected Account id foreign key */ - connectedAccountId: Scalars['ID']; - createdAt: Scalars['DateTime']; + connectedAccountId?: Maybe; + /** Creation date */ + createdAt?: Maybe; deletedAt?: Maybe; /** Handle */ - handle: Scalars['String']; - id: Scalars['ID']; + handle?: Maybe; + /** Id */ + id?: Maybe; /** Is Contact Auto Creation Enabled */ - isContactAutoCreationEnabled: Scalars['Boolean']; + isContactAutoCreationEnabled?: Maybe; /** Messages from the channel. */ messageChannelMessageAssociations?: Maybe; + /** Ongoing sync started at */ + ongoingSyncStartedAt?: Maybe; + /** Last sync cursor */ + syncCursor?: Maybe; + /** Last sync status */ + syncStatus?: Maybe; + /** Last sync date */ + syncedAt?: Maybe; /** Channel Type */ - type: MessageChannelTypeEnum; - updatedAt: Scalars['DateTime']; + type?: Maybe; + /** Update date */ + updatedAt?: Maybe; /** Visibility */ - visibility: MessageChannelVisibilityEnum; + visibility?: Maybe; }; @@ -1639,8 +2738,8 @@ export type MessageChannelMessageChannelMessageAssociationsArgs = { /** Message Channels */ export type MessageChannelConnection = { - edges: Array; - pageInfo: PageInfo; + edges?: Maybe>; + pageInfo?: Maybe; /** Total number of records in the connection */ totalCount?: Maybe; }; @@ -1649,15 +2748,26 @@ export type MessageChannelConnection = { export type MessageChannelCreateInput = { /** Connected Account id foreign key */ connectedAccountId: Scalars['ID']; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** Handle */ handle?: InputMaybe; + /** Id */ id?: InputMaybe; /** Is Contact Auto Creation Enabled */ isContactAutoCreationEnabled?: InputMaybe; + /** Ongoing sync started at */ + ongoingSyncStartedAt?: InputMaybe; + /** Last sync cursor */ + syncCursor?: InputMaybe; + /** Last sync status */ + syncStatus?: InputMaybe; + /** Last sync date */ + syncedAt?: InputMaybe; /** Channel Type */ type?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; /** Visibility */ visibility?: InputMaybe; @@ -1665,8 +2775,8 @@ export type MessageChannelCreateInput = { /** Message Channels */ export type MessageChannelEdge = { - cursor: Scalars['Cursor']; - node: MessageChannel; + cursor?: Maybe; + node?: Maybe; }; /** Message Channels */ @@ -1674,17 +2784,28 @@ export type MessageChannelFilterInput = { and?: InputMaybe>>; /** Connected Account id foreign key */ connectedAccountId?: InputMaybe; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** Handle */ handle?: InputMaybe; + /** Id */ id?: InputMaybe; /** Is Contact Auto Creation Enabled */ isContactAutoCreationEnabled?: InputMaybe; not?: InputMaybe; + /** Ongoing sync started at */ + ongoingSyncStartedAt?: InputMaybe; or?: InputMaybe>>; + /** Last sync cursor */ + syncCursor?: InputMaybe; + /** Last sync status */ + syncStatus?: InputMaybe; + /** Last sync date */ + syncedAt?: InputMaybe; /** Channel Type */ type?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; /** Visibility */ visibility?: InputMaybe; @@ -1692,9 +2813,11 @@ export type MessageChannelFilterInput = { /** Message Synced with a Message Channel */ export type MessageChannelMessageAssociation = { - createdAt: Scalars['DateTime']; + /** Creation date */ + createdAt?: Maybe; deletedAt?: Maybe; - id: Scalars['ID']; + /** Id */ + id?: Maybe; /** Message Id */ message?: Maybe; /** Message Channel Id */ @@ -1711,21 +2834,24 @@ export type MessageChannelMessageAssociation = { messageThreadExternalId?: Maybe; /** Message Thread Id id foreign key */ messageThreadId?: Maybe; - updatedAt: Scalars['DateTime']; + /** Update date */ + updatedAt?: Maybe; }; /** Message Synced with a Message Channel */ export type MessageChannelMessageAssociationConnection = { - edges: Array; - pageInfo: PageInfo; + edges?: Maybe>; + pageInfo?: Maybe; /** Total number of records in the connection */ totalCount?: Maybe; }; /** Message Synced with a Message Channel */ export type MessageChannelMessageAssociationCreateInput = { + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; + /** Id */ id?: InputMaybe; /** Message Channel Id id foreign key */ messageChannelId?: InputMaybe; @@ -1737,20 +2863,23 @@ export type MessageChannelMessageAssociationCreateInput = { messageThreadExternalId?: InputMaybe; /** Message Thread Id id foreign key */ messageThreadId?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; }; /** Message Synced with a Message Channel */ export type MessageChannelMessageAssociationEdge = { - cursor: Scalars['Cursor']; - node: MessageChannelMessageAssociation; + cursor?: Maybe; + node?: Maybe; }; /** Message Synced with a Message Channel */ export type MessageChannelMessageAssociationFilterInput = { and?: InputMaybe>>; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; + /** Id */ id?: InputMaybe; /** Message Channel Id id foreign key */ messageChannelId?: InputMaybe; @@ -1764,13 +2893,16 @@ export type MessageChannelMessageAssociationFilterInput = { messageThreadId?: InputMaybe; not?: InputMaybe; or?: InputMaybe>>; + /** Update date */ updatedAt?: InputMaybe; }; /** Message Synced with a Message Channel */ export type MessageChannelMessageAssociationOrderByInput = { + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; + /** Id */ id?: InputMaybe; /** Message Channel Id id foreign key */ messageChannelId?: InputMaybe; @@ -1782,13 +2914,16 @@ export type MessageChannelMessageAssociationOrderByInput = { messageThreadExternalId?: InputMaybe; /** Message Thread Id id foreign key */ messageThreadId?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; }; /** Message Synced with a Message Channel */ export type MessageChannelMessageAssociationUpdateInput = { + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; + /** Id */ id?: InputMaybe; /** Message Channel Id id foreign key */ messageChannelId?: InputMaybe; @@ -1800,6 +2935,7 @@ export type MessageChannelMessageAssociationUpdateInput = { messageThreadExternalId?: InputMaybe; /** Message Thread Id id foreign key */ messageThreadId?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; }; @@ -1807,20 +2943,50 @@ export type MessageChannelMessageAssociationUpdateInput = { export type MessageChannelOrderByInput = { /** Connected Account id foreign key */ connectedAccountId?: InputMaybe; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** Handle */ handle?: InputMaybe; + /** Id */ id?: InputMaybe; /** Is Contact Auto Creation Enabled */ isContactAutoCreationEnabled?: InputMaybe; + /** Ongoing sync started at */ + ongoingSyncStartedAt?: InputMaybe; + /** Last sync cursor */ + syncCursor?: InputMaybe; + /** Last sync status */ + syncStatus?: InputMaybe; + /** Last sync date */ + syncedAt?: InputMaybe; /** Channel Type */ type?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; /** Visibility */ visibility?: InputMaybe; }; +/** Last sync status */ +export enum MessageChannelSyncStatusEnum { + /** Failed */ + Failed = 'FAILED', + /** Ongoing */ + Ongoing = 'ONGOING', + /** Pending */ + Pending = 'PENDING', + /** Succeeded */ + Succeeded = 'SUCCEEDED' +} + +export type MessageChannelSyncStatusEnumFilter = { + eq?: InputMaybe; + in?: InputMaybe>>; + is?: InputMaybe; + neq?: InputMaybe; +}; + /** Channel Type */ export enum MessageChannelTypeEnum { /** Email */ @@ -1840,15 +3006,26 @@ export type MessageChannelTypeEnumFilter = { export type MessageChannelUpdateInput = { /** Connected Account id foreign key */ connectedAccountId?: InputMaybe; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** Handle */ handle?: InputMaybe; + /** Id */ id?: InputMaybe; /** Is Contact Auto Creation Enabled */ isContactAutoCreationEnabled?: InputMaybe; + /** Ongoing sync started at */ + ongoingSyncStartedAt?: InputMaybe; + /** Last sync cursor */ + syncCursor?: InputMaybe; + /** Last sync status */ + syncStatus?: InputMaybe; + /** Last sync date */ + syncedAt?: InputMaybe; /** Channel Type */ type?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; /** Visibility */ visibility?: InputMaybe; @@ -1873,20 +3050,22 @@ export type MessageChannelVisibilityEnumFilter = { /** Message */ export type MessageConnection = { - edges: Array; - pageInfo: PageInfo; + edges?: Maybe>; + pageInfo?: Maybe; /** Total number of records in the connection */ totalCount?: Maybe; }; /** Message */ export type MessageCreateInput = { + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** Message Direction */ direction?: InputMaybe; /** Message id from the message header */ headerMessageId?: InputMaybe; + /** Id */ id?: InputMaybe; /** Message Thread Id id foreign key */ messageThreadId?: InputMaybe; @@ -1896,6 +3075,7 @@ export type MessageCreateInput = { subject?: InputMaybe; /** Text */ text?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; }; @@ -1916,19 +3096,21 @@ export type MessageDirectionEnumFilter = { /** Message */ export type MessageEdge = { - cursor: Scalars['Cursor']; - node: Message; + cursor?: Maybe; + node?: Maybe; }; /** Message */ export type MessageFilterInput = { and?: InputMaybe>>; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** Message Direction */ direction?: InputMaybe; /** Message id from the message header */ headerMessageId?: InputMaybe; + /** Id */ id?: InputMaybe; /** Message Thread Id id foreign key */ messageThreadId?: InputMaybe; @@ -1940,17 +3122,20 @@ export type MessageFilterInput = { subject?: InputMaybe; /** Text */ text?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; }; /** Message */ export type MessageOrderByInput = { + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** Message Direction */ direction?: InputMaybe; /** Message id from the message header */ headerMessageId?: InputMaybe; + /** Id */ id?: InputMaybe; /** Message Thread Id id foreign key */ messageThreadId?: InputMaybe; @@ -1960,29 +3145,33 @@ export type MessageOrderByInput = { subject?: InputMaybe; /** Text */ text?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; }; /** Message Participants */ export type MessageParticipant = { - createdAt: Scalars['DateTime']; + /** Creation date */ + createdAt?: Maybe; deletedAt?: Maybe; /** Display Name */ - displayName: Scalars['String']; + displayName?: Maybe; /** Handle */ - handle: Scalars['String']; - id: Scalars['ID']; + handle?: Maybe; + /** Id */ + id?: Maybe; /** Message */ message?: Maybe; /** Message id foreign key */ - messageId: Scalars['ID']; + messageId?: Maybe; /** Person */ person?: Maybe; /** Person id foreign key */ personId?: Maybe; /** Role */ - role: MessageParticipantRoleEnum; - updatedAt: Scalars['DateTime']; + role?: Maybe; + /** Update date */ + updatedAt?: Maybe; /** Workspace member */ workspaceMember?: Maybe; /** Workspace member id foreign key */ @@ -1991,20 +3180,22 @@ export type MessageParticipant = { /** Message Participants */ export type MessageParticipantConnection = { - edges: Array; - pageInfo: PageInfo; + edges?: Maybe>; + pageInfo?: Maybe; /** Total number of records in the connection */ totalCount?: Maybe; }; /** Message Participants */ export type MessageParticipantCreateInput = { + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** Display Name */ displayName?: InputMaybe; /** Handle */ handle?: InputMaybe; + /** Id */ id?: InputMaybe; /** Message id foreign key */ messageId: Scalars['ID']; @@ -2012,6 +3203,7 @@ export type MessageParticipantCreateInput = { personId?: InputMaybe; /** Role */ role?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; /** Workspace member id foreign key */ workspaceMemberId?: InputMaybe; @@ -2019,19 +3211,21 @@ export type MessageParticipantCreateInput = { /** Message Participants */ export type MessageParticipantEdge = { - cursor: Scalars['Cursor']; - node: MessageParticipant; + cursor?: Maybe; + node?: Maybe; }; /** Message Participants */ export type MessageParticipantFilterInput = { and?: InputMaybe>>; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** Display Name */ displayName?: InputMaybe; /** Handle */ handle?: InputMaybe; + /** Id */ id?: InputMaybe; /** Message id foreign key */ messageId?: InputMaybe; @@ -2041,6 +3235,7 @@ export type MessageParticipantFilterInput = { personId?: InputMaybe; /** Role */ role?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; /** Workspace member id foreign key */ workspaceMemberId?: InputMaybe; @@ -2048,12 +3243,14 @@ export type MessageParticipantFilterInput = { /** Message Participants */ export type MessageParticipantOrderByInput = { + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** Display Name */ displayName?: InputMaybe; /** Handle */ handle?: InputMaybe; + /** Id */ id?: InputMaybe; /** Message id foreign key */ messageId?: InputMaybe; @@ -2061,6 +3258,7 @@ export type MessageParticipantOrderByInput = { personId?: InputMaybe; /** Role */ role?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; /** Workspace member id foreign key */ workspaceMemberId?: InputMaybe; @@ -2087,12 +3285,14 @@ export type MessageParticipantRoleEnumFilter = { /** Message Participants */ export type MessageParticipantUpdateInput = { + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** Display Name */ displayName?: InputMaybe; /** Handle */ handle?: InputMaybe; + /** Id */ id?: InputMaybe; /** Message id foreign key */ messageId?: InputMaybe; @@ -2100,6 +3300,7 @@ export type MessageParticipantUpdateInput = { personId?: InputMaybe; /** Role */ role?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; /** Workspace member id foreign key */ workspaceMemberId?: InputMaybe; @@ -2107,14 +3308,17 @@ export type MessageParticipantUpdateInput = { /** Message Thread */ export type MessageThread = { - createdAt: Scalars['DateTime']; + /** Creation date */ + createdAt?: Maybe; deletedAt?: Maybe; - id: Scalars['ID']; + /** Id */ + id?: Maybe; /** Messages from the channel. */ messageChannelMessageAssociations?: Maybe; /** Messages from the thread. */ messages?: Maybe; - updatedAt: Scalars['DateTime']; + /** Update date */ + updatedAt?: Maybe; }; @@ -2141,61 +3345,75 @@ export type MessageThreadMessagesArgs = { /** Message Thread */ export type MessageThreadConnection = { - edges: Array; - pageInfo: PageInfo; + edges?: Maybe>; + pageInfo?: Maybe; /** Total number of records in the connection */ totalCount?: Maybe; }; /** Message Thread */ export type MessageThreadCreateInput = { + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; + /** Id */ id?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; }; /** Message Thread */ export type MessageThreadEdge = { - cursor: Scalars['Cursor']; - node: MessageThread; + cursor?: Maybe; + node?: Maybe; }; /** Message Thread */ export type MessageThreadFilterInput = { and?: InputMaybe>>; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; + /** Id */ id?: InputMaybe; not?: InputMaybe; or?: InputMaybe>>; + /** Update date */ updatedAt?: InputMaybe; }; /** Message Thread */ export type MessageThreadOrderByInput = { + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; + /** Id */ id?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; }; /** Message Thread */ export type MessageThreadUpdateInput = { + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; + /** Id */ id?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; }; /** Message */ export type MessageUpdateInput = { + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** Message Direction */ direction?: InputMaybe; /** Message id from the message header */ headerMessageId?: InputMaybe; + /** Id */ id?: InputMaybe; /** Message Thread Id id foreign key */ messageThreadId?: InputMaybe; @@ -2205,189 +3423,222 @@ export type MessageUpdateInput = { subject?: InputMaybe; /** Text */ text?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; }; export type Mutation = { activateWorkspace: Workspace; + authorizeApp: AuthorizeApp; challenge: LoginToken; - checkout: CheckoutEntity; - createActivities: Array; - createActivity: Activity; - createActivityTarget: ActivityTarget; - createActivityTargets: Array; - createApiKey: ApiKey; - createApiKeys: Array; - createAttachment: Attachment; - createAttachments: Array; - createBlocklist: Blocklist; - createBlocklists: Array; - createComment: Comment; - createComments: Array; - createCompanies: Array; - createCompany: Company; - createConnectedAccount: ConnectedAccount; - createConnectedAccounts: Array; - createEvent: Analytics; - createFavorite: Favorite; - createFavorites: Array; - createMessage: Message; - createMessageChannel: MessageChannel; - createMessageChannelMessageAssociation: MessageChannelMessageAssociation; - createMessageChannelMessageAssociations: Array; - createMessageChannels: Array; - createMessageParticipant: MessageParticipant; - createMessageParticipants: Array; - createMessageThread: MessageThread; - createMessageThreads: Array; - createMessages: Array; + checkoutSession: SessionEntity; + createActivities?: Maybe>; + createActivity?: Maybe; + createActivityTarget?: Maybe; + createActivityTargets?: Maybe>; + createApiKey?: Maybe; + createApiKeys?: Maybe>; + createAttachment?: Maybe; + createAttachments?: Maybe>; + createBlocklist?: Maybe; + createBlocklists?: Maybe>; + createCalendarChannel?: Maybe; + createCalendarChannelEventAssociation?: Maybe; + createCalendarChannelEventAssociations?: Maybe>; + createCalendarChannels?: Maybe>; + createCalendarEvent?: Maybe; + createCalendarEventParticipant?: Maybe; + createCalendarEventParticipants?: Maybe>; + createCalendarEvents?: Maybe>; + createComment?: Maybe; + createComments?: Maybe>; + createCompanies?: Maybe>; + createCompany?: Maybe; + createConnectedAccount?: Maybe; + createConnectedAccounts?: Maybe>; + createEvent?: Maybe; + createEvents?: Maybe>; + createFavorite?: Maybe; + createFavorites?: Maybe>; + createMessage?: Maybe; + createMessageChannel?: Maybe; + createMessageChannelMessageAssociation?: Maybe; + createMessageChannelMessageAssociations?: Maybe>; + createMessageChannels?: Maybe>; + createMessageParticipant?: Maybe; + createMessageParticipants?: Maybe>; + createMessageThread?: Maybe; + createMessageThreads?: Maybe>; + createMessages?: Maybe>; + createOneAppToken: AppToken; createOneObject: Object; - createOneRefreshToken: RefreshToken; - createOpportunities: Array; - createOpportunity: Opportunity; - createPeople: Array; - createPerson: Person; - createPipelineStep: PipelineStep; - createPipelineSteps: Array; - createView: View; - createViewField: ViewField; - createViewFields: Array; - createViewFilter: ViewFilter; - createViewFilters: Array; - createViewSort: ViewSort; - createViewSorts: Array; - createViews: Array; - createWebhook: Webhook; - createWebhooks: Array; - createWorkspaceMember: WorkspaceMember; - createWorkspaceMembers: Array; - deleteActivities: Array; - deleteActivity: Activity; - deleteActivityTarget: ActivityTarget; - deleteActivityTargets: Array; - deleteApiKey: ApiKey; - deleteApiKeys: Array; - deleteAttachment: Attachment; - deleteAttachments: Array; - deleteBlocklist: Blocklist; - deleteBlocklists: Array; - deleteComment: Comment; - deleteComments: Array; - deleteCompanies: Array; - deleteCompany: Company; - deleteConnectedAccount: ConnectedAccount; - deleteConnectedAccounts: Array; + createOpportunities?: Maybe>; + createOpportunity?: Maybe; + createPeople?: Maybe>; + createPerson?: Maybe; + createView?: Maybe; + createViewField?: Maybe; + createViewFields?: Maybe>; + createViewFilter?: Maybe; + createViewFilters?: Maybe>; + createViewSort?: Maybe; + createViewSorts?: Maybe>; + createViews?: Maybe>; + createWebhook?: Maybe; + createWebhooks?: Maybe>; + createWorkspaceMember?: Maybe; + createWorkspaceMembers?: Maybe>; + deleteActivities?: Maybe>; + deleteActivity?: Maybe; + deleteActivityTarget?: Maybe; + deleteActivityTargets?: Maybe>; + deleteApiKey?: Maybe; + deleteApiKeys?: Maybe>; + deleteAttachment?: Maybe; + deleteAttachments?: Maybe>; + deleteBlocklist?: Maybe; + deleteBlocklists?: Maybe>; + deleteCalendarChannel?: Maybe; + deleteCalendarChannelEventAssociation?: Maybe; + deleteCalendarChannelEventAssociations?: Maybe>; + deleteCalendarChannels?: Maybe>; + deleteCalendarEvent?: Maybe; + deleteCalendarEventParticipant?: Maybe; + deleteCalendarEventParticipants?: Maybe>; + deleteCalendarEvents?: Maybe>; + deleteComment?: Maybe; + deleteComments?: Maybe>; + deleteCompanies?: Maybe>; + deleteCompany?: Maybe; + deleteConnectedAccount?: Maybe; + deleteConnectedAccounts?: Maybe>; deleteCurrentWorkspace: Workspace; - deleteFavorite: Favorite; - deleteFavorites: Array; - deleteMessage: Message; - deleteMessageChannel: MessageChannel; - deleteMessageChannelMessageAssociation: MessageChannelMessageAssociation; - deleteMessageChannelMessageAssociations: Array; - deleteMessageChannels: Array; - deleteMessageParticipant: MessageParticipant; - deleteMessageParticipants: Array; - deleteMessageThread: MessageThread; - deleteMessageThreads: Array; - deleteMessages: Array; + deleteEvent?: Maybe; + deleteEvents?: Maybe>; + deleteFavorite?: Maybe; + deleteFavorites?: Maybe>; + deleteMessage?: Maybe; + deleteMessageChannel?: Maybe; + deleteMessageChannelMessageAssociation?: Maybe; + deleteMessageChannelMessageAssociations?: Maybe>; + deleteMessageChannels?: Maybe>; + deleteMessageParticipant?: Maybe; + deleteMessageParticipants?: Maybe>; + deleteMessageThread?: Maybe; + deleteMessageThreads?: Maybe>; + deleteMessages?: Maybe>; deleteOneObject: Object; - deleteOpportunities: Array; - deleteOpportunity: Opportunity; - deletePeople: Array; - deletePerson: Person; - deletePipelineStep: PipelineStep; - deletePipelineSteps: Array; + deleteOpportunities?: Maybe>; + deleteOpportunity?: Maybe; + deletePeople?: Maybe>; + deletePerson?: Maybe; deleteUser: User; - deleteView: View; - deleteViewField: ViewField; - deleteViewFields: Array; - deleteViewFilter: ViewFilter; - deleteViewFilters: Array; - deleteViewSort: ViewSort; - deleteViewSorts: Array; - deleteViews: Array; - deleteWebhook: Webhook; - deleteWebhooks: Array; - deleteWorkspaceMember: WorkspaceMember; - deleteWorkspaceMembers: Array; + deleteView?: Maybe; + deleteViewField?: Maybe; + deleteViewFields?: Maybe>; + deleteViewFilter?: Maybe; + deleteViewFilters?: Maybe>; + deleteViewSort?: Maybe; + deleteViewSorts?: Maybe>; + deleteViews?: Maybe>; + deleteWebhook?: Maybe; + deleteWebhooks?: Maybe>; + deleteWorkspaceMember?: Maybe; + deleteWorkspaceMembers?: Maybe>; emailPasswordResetLink: EmailPasswordResetLink; - executeQuickActionOnActivity: Activity; - executeQuickActionOnActivityTarget: ActivityTarget; - executeQuickActionOnApiKey: ApiKey; - executeQuickActionOnAttachment: Attachment; - executeQuickActionOnBlocklist: Blocklist; - executeQuickActionOnComment: Comment; - executeQuickActionOnCompany: Company; - executeQuickActionOnConnectedAccount: ConnectedAccount; - executeQuickActionOnFavorite: Favorite; - executeQuickActionOnMessage: Message; - executeQuickActionOnMessageChannel: MessageChannel; - executeQuickActionOnMessageChannelMessageAssociation: MessageChannelMessageAssociation; - executeQuickActionOnMessageParticipant: MessageParticipant; - executeQuickActionOnMessageThread: MessageThread; - executeQuickActionOnOpportunity: Opportunity; - executeQuickActionOnPerson: Person; - executeQuickActionOnPipelineStep: PipelineStep; - executeQuickActionOnView: View; - executeQuickActionOnViewField: ViewField; - executeQuickActionOnViewFilter: ViewFilter; - executeQuickActionOnViewSort: ViewSort; - executeQuickActionOnWebhook: Webhook; - executeQuickActionOnWorkspaceMember: WorkspaceMember; + exchangeAuthorizationCode: ExchangeAuthCode; + executeQuickActionOnActivity?: Maybe; + executeQuickActionOnActivityTarget?: Maybe; + executeQuickActionOnApiKey?: Maybe; + executeQuickActionOnAttachment?: Maybe; + executeQuickActionOnBlocklist?: Maybe; + executeQuickActionOnCalendarChannel?: Maybe; + executeQuickActionOnCalendarChannelEventAssociation?: Maybe; + executeQuickActionOnCalendarEvent?: Maybe; + executeQuickActionOnCalendarEventParticipant?: Maybe; + executeQuickActionOnComment?: Maybe; + executeQuickActionOnCompany?: Maybe; + executeQuickActionOnConnectedAccount?: Maybe; + executeQuickActionOnEvent?: Maybe; + executeQuickActionOnFavorite?: Maybe; + executeQuickActionOnMessage?: Maybe; + executeQuickActionOnMessageChannel?: Maybe; + executeQuickActionOnMessageChannelMessageAssociation?: Maybe; + executeQuickActionOnMessageParticipant?: Maybe; + executeQuickActionOnMessageThread?: Maybe; + executeQuickActionOnOpportunity?: Maybe; + executeQuickActionOnPerson?: Maybe; + executeQuickActionOnView?: Maybe; + executeQuickActionOnViewField?: Maybe; + executeQuickActionOnViewFilter?: Maybe; + executeQuickActionOnViewSort?: Maybe; + executeQuickActionOnWebhook?: Maybe; + executeQuickActionOnWorkspaceMember?: Maybe; generateApiKeyToken: ApiKeyToken; + generateJWT: AuthTokens; generateTransientToken: TransientToken; impersonate: Verify; renewToken: AuthTokens; signUp: LoginToken; - updateActivities: Array; - updateActivity: Activity; - updateActivityTarget: ActivityTarget; - updateActivityTargets: Array; - updateApiKey: ApiKey; - updateApiKeys: Array; - updateAttachment: Attachment; - updateAttachments: Array; - updateBlocklist: Blocklist; - updateBlocklists: Array; - updateComment: Comment; - updateComments: Array; - updateCompanies: Array; - updateCompany: Company; - updateConnectedAccount: ConnectedAccount; - updateConnectedAccounts: Array; - updateFavorite: Favorite; - updateFavorites: Array; - updateMessage: Message; - updateMessageChannel: MessageChannel; - updateMessageChannelMessageAssociation: MessageChannelMessageAssociation; - updateMessageChannelMessageAssociations: Array; - updateMessageChannels: Array; - updateMessageParticipant: MessageParticipant; - updateMessageParticipants: Array; - updateMessageThread: MessageThread; - updateMessageThreads: Array; - updateMessages: Array; + track: Analytics; + updateActivities?: Maybe>; + updateActivity?: Maybe; + updateActivityTarget?: Maybe; + updateActivityTargets?: Maybe>; + updateApiKey?: Maybe; + updateApiKeys?: Maybe>; + updateAttachment?: Maybe; + updateAttachments?: Maybe>; + updateBillingSubscription: UpdateBillingEntity; + updateBlocklist?: Maybe; + updateBlocklists?: Maybe>; + updateCalendarChannel?: Maybe; + updateCalendarChannelEventAssociation?: Maybe; + updateCalendarChannelEventAssociations?: Maybe>; + updateCalendarChannels?: Maybe>; + updateCalendarEvent?: Maybe; + updateCalendarEventParticipant?: Maybe; + updateCalendarEventParticipants?: Maybe>; + updateCalendarEvents?: Maybe>; + updateComment?: Maybe; + updateComments?: Maybe>; + updateCompanies?: Maybe>; + updateCompany?: Maybe; + updateConnectedAccount?: Maybe; + updateConnectedAccounts?: Maybe>; + updateEvent?: Maybe; + updateEvents?: Maybe>; + updateFavorite?: Maybe; + updateFavorites?: Maybe>; + updateMessage?: Maybe; + updateMessageChannel?: Maybe; + updateMessageChannelMessageAssociation?: Maybe; + updateMessageChannelMessageAssociations?: Maybe>; + updateMessageChannels?: Maybe>; + updateMessageParticipant?: Maybe; + updateMessageParticipants?: Maybe>; + updateMessageThread?: Maybe; + updateMessageThreads?: Maybe>; + updateMessages?: Maybe>; updateOneObject: Object; - updateOpportunities: Array; - updateOpportunity: Opportunity; + updateOpportunities?: Maybe>; + updateOpportunity?: Maybe; updatePasswordViaResetToken: InvalidatePassword; - updatePeople: Array; - updatePerson: Person; - updatePipelineStep: PipelineStep; - updatePipelineSteps: Array; - updateView: View; - updateViewField: ViewField; - updateViewFields: Array; - updateViewFilter: ViewFilter; - updateViewFilters: Array; - updateViewSort: ViewSort; - updateViewSorts: Array; - updateViews: Array; - updateWebhook: Webhook; - updateWebhooks: Array; + updatePeople?: Maybe>; + updatePerson?: Maybe; + updateView?: Maybe; + updateViewField?: Maybe; + updateViewFields?: Maybe>; + updateViewFilter?: Maybe; + updateViewFilters?: Maybe>; + updateViewSort?: Maybe; + updateViewSorts?: Maybe>; + updateViews?: Maybe>; + updateWebhook?: Maybe; + updateWebhooks?: Maybe>; updateWorkspace: Workspace; - updateWorkspaceMember: WorkspaceMember; - updateWorkspaceMembers: Array; + updateWorkspaceMember?: Maybe; + updateWorkspaceMembers?: Maybe>; uploadFile: Scalars['String']; uploadImage: Scalars['String']; uploadProfilePicture: Scalars['String']; @@ -2401,391 +3652,482 @@ export type MutationActivateWorkspaceArgs = { }; +export type MutationAuthorizeAppArgs = { + clientId: Scalars['String']; + codeChallenge?: InputMaybe; + redirectUrl?: InputMaybe; +}; + + export type MutationChallengeArgs = { email: Scalars['String']; password: Scalars['String']; }; -export type MutationCheckoutArgs = { +export type MutationCheckoutSessionArgs = { recurringInterval: Scalars['String']; successUrlPath?: InputMaybe; }; export type MutationCreateActivitiesArgs = { - data: Array; + data?: InputMaybe>; }; export type MutationCreateActivityArgs = { - data: ActivityCreateInput; + data?: InputMaybe; }; export type MutationCreateActivityTargetArgs = { - data: ActivityTargetCreateInput; + data?: InputMaybe; }; export type MutationCreateActivityTargetsArgs = { - data: Array; + data?: InputMaybe>; }; export type MutationCreateApiKeyArgs = { - data: ApiKeyCreateInput; + data?: InputMaybe; }; export type MutationCreateApiKeysArgs = { - data: Array; + data?: InputMaybe>; }; export type MutationCreateAttachmentArgs = { - data: AttachmentCreateInput; + data?: InputMaybe; }; export type MutationCreateAttachmentsArgs = { - data: Array; + data?: InputMaybe>; }; export type MutationCreateBlocklistArgs = { - data: BlocklistCreateInput; + data?: InputMaybe; }; export type MutationCreateBlocklistsArgs = { - data: Array; + data?: InputMaybe>; +}; + + +export type MutationCreateCalendarChannelArgs = { + data?: InputMaybe; +}; + + +export type MutationCreateCalendarChannelEventAssociationArgs = { + data?: InputMaybe; +}; + + +export type MutationCreateCalendarChannelEventAssociationsArgs = { + data?: InputMaybe>; +}; + + +export type MutationCreateCalendarChannelsArgs = { + data?: InputMaybe>; +}; + + +export type MutationCreateCalendarEventArgs = { + data?: InputMaybe; +}; + + +export type MutationCreateCalendarEventParticipantArgs = { + data?: InputMaybe; +}; + + +export type MutationCreateCalendarEventParticipantsArgs = { + data?: InputMaybe>; +}; + + +export type MutationCreateCalendarEventsArgs = { + data?: InputMaybe>; }; export type MutationCreateCommentArgs = { - data: CommentCreateInput; + data?: InputMaybe; }; export type MutationCreateCommentsArgs = { - data: Array; + data?: InputMaybe>; }; export type MutationCreateCompaniesArgs = { - data: Array; + data?: InputMaybe>; }; export type MutationCreateCompanyArgs = { - data: CompanyCreateInput; + data?: InputMaybe; }; export type MutationCreateConnectedAccountArgs = { - data: ConnectedAccountCreateInput; + data?: InputMaybe; }; export type MutationCreateConnectedAccountsArgs = { - data: Array; + data?: InputMaybe>; }; export type MutationCreateEventArgs = { - data: Scalars['JSON']; - type: Scalars['String']; + data?: InputMaybe; +}; + + +export type MutationCreateEventsArgs = { + data?: InputMaybe>; }; export type MutationCreateFavoriteArgs = { - data: FavoriteCreateInput; + data?: InputMaybe; }; export type MutationCreateFavoritesArgs = { - data: Array; + data?: InputMaybe>; }; export type MutationCreateMessageArgs = { - data: MessageCreateInput; + data?: InputMaybe; }; export type MutationCreateMessageChannelArgs = { - data: MessageChannelCreateInput; + data?: InputMaybe; }; export type MutationCreateMessageChannelMessageAssociationArgs = { - data: MessageChannelMessageAssociationCreateInput; + data?: InputMaybe; }; export type MutationCreateMessageChannelMessageAssociationsArgs = { - data: Array; + data?: InputMaybe>; }; export type MutationCreateMessageChannelsArgs = { - data: Array; + data?: InputMaybe>; }; export type MutationCreateMessageParticipantArgs = { - data: MessageParticipantCreateInput; + data?: InputMaybe; }; export type MutationCreateMessageParticipantsArgs = { - data: Array; + data?: InputMaybe>; }; export type MutationCreateMessageThreadArgs = { - data: MessageThreadCreateInput; + data?: InputMaybe; }; export type MutationCreateMessageThreadsArgs = { - data: Array; + data?: InputMaybe>; }; export type MutationCreateMessagesArgs = { - data: Array; + data?: InputMaybe>; }; export type MutationCreateOpportunitiesArgs = { - data: Array; + data?: InputMaybe>; }; export type MutationCreateOpportunityArgs = { - data: OpportunityCreateInput; + data?: InputMaybe; }; export type MutationCreatePeopleArgs = { - data: Array; + data?: InputMaybe>; }; export type MutationCreatePersonArgs = { - data: PersonCreateInput; -}; - - -export type MutationCreatePipelineStepArgs = { - data: PipelineStepCreateInput; -}; - - -export type MutationCreatePipelineStepsArgs = { - data: Array; + data?: InputMaybe; }; export type MutationCreateViewArgs = { - data: ViewCreateInput; + data?: InputMaybe; }; export type MutationCreateViewFieldArgs = { - data: ViewFieldCreateInput; + data?: InputMaybe; }; export type MutationCreateViewFieldsArgs = { - data: Array; + data?: InputMaybe>; }; export type MutationCreateViewFilterArgs = { - data: ViewFilterCreateInput; + data?: InputMaybe; }; export type MutationCreateViewFiltersArgs = { - data: Array; + data?: InputMaybe>; }; export type MutationCreateViewSortArgs = { - data: ViewSortCreateInput; + data?: InputMaybe; }; export type MutationCreateViewSortsArgs = { - data: Array; + data?: InputMaybe>; }; export type MutationCreateViewsArgs = { - data: Array; + data?: InputMaybe>; }; export type MutationCreateWebhookArgs = { - data: WebhookCreateInput; + data?: InputMaybe; }; export type MutationCreateWebhooksArgs = { - data: Array; + data?: InputMaybe>; }; export type MutationCreateWorkspaceMemberArgs = { - data: WorkspaceMemberCreateInput; + data?: InputMaybe; }; export type MutationCreateWorkspaceMembersArgs = { - data: Array; + data?: InputMaybe>; }; export type MutationDeleteActivitiesArgs = { - filter: ActivityFilterInput; + filter?: InputMaybe; }; export type MutationDeleteActivityArgs = { - id: Scalars['ID']; + id?: InputMaybe; }; export type MutationDeleteActivityTargetArgs = { - id: Scalars['ID']; + id?: InputMaybe; }; export type MutationDeleteActivityTargetsArgs = { - filter: ActivityTargetFilterInput; + filter?: InputMaybe; }; export type MutationDeleteApiKeyArgs = { - id: Scalars['ID']; + id?: InputMaybe; }; export type MutationDeleteApiKeysArgs = { - filter: ApiKeyFilterInput; + filter?: InputMaybe; }; export type MutationDeleteAttachmentArgs = { - id: Scalars['ID']; + id?: InputMaybe; }; export type MutationDeleteAttachmentsArgs = { - filter: AttachmentFilterInput; + filter?: InputMaybe; }; export type MutationDeleteBlocklistArgs = { - id: Scalars['ID']; + id?: InputMaybe; }; export type MutationDeleteBlocklistsArgs = { - filter: BlocklistFilterInput; + filter?: InputMaybe; +}; + + +export type MutationDeleteCalendarChannelArgs = { + id?: InputMaybe; +}; + + +export type MutationDeleteCalendarChannelEventAssociationArgs = { + id?: InputMaybe; +}; + + +export type MutationDeleteCalendarChannelEventAssociationsArgs = { + filter?: InputMaybe; +}; + + +export type MutationDeleteCalendarChannelsArgs = { + filter?: InputMaybe; +}; + + +export type MutationDeleteCalendarEventArgs = { + id?: InputMaybe; +}; + + +export type MutationDeleteCalendarEventParticipantArgs = { + id?: InputMaybe; +}; + + +export type MutationDeleteCalendarEventParticipantsArgs = { + filter?: InputMaybe; +}; + + +export type MutationDeleteCalendarEventsArgs = { + filter?: InputMaybe; }; export type MutationDeleteCommentArgs = { - id: Scalars['ID']; + id?: InputMaybe; }; export type MutationDeleteCommentsArgs = { - filter: CommentFilterInput; + filter?: InputMaybe; }; export type MutationDeleteCompaniesArgs = { - filter: CompanyFilterInput; + filter?: InputMaybe; }; export type MutationDeleteCompanyArgs = { - id: Scalars['ID']; + id?: InputMaybe; }; export type MutationDeleteConnectedAccountArgs = { - id: Scalars['ID']; + id?: InputMaybe; }; export type MutationDeleteConnectedAccountsArgs = { - filter: ConnectedAccountFilterInput; + filter?: InputMaybe; +}; + + +export type MutationDeleteEventArgs = { + id?: InputMaybe; +}; + + +export type MutationDeleteEventsArgs = { + filter?: InputMaybe; }; export type MutationDeleteFavoriteArgs = { - id: Scalars['ID']; + id?: InputMaybe; }; export type MutationDeleteFavoritesArgs = { - filter: FavoriteFilterInput; + filter?: InputMaybe; }; export type MutationDeleteMessageArgs = { - id: Scalars['ID']; + id?: InputMaybe; }; export type MutationDeleteMessageChannelArgs = { - id: Scalars['ID']; + id?: InputMaybe; }; export type MutationDeleteMessageChannelMessageAssociationArgs = { - id: Scalars['ID']; + id?: InputMaybe; }; export type MutationDeleteMessageChannelMessageAssociationsArgs = { - filter: MessageChannelMessageAssociationFilterInput; + filter?: InputMaybe; }; export type MutationDeleteMessageChannelsArgs = { - filter: MessageChannelFilterInput; + filter?: InputMaybe; }; export type MutationDeleteMessageParticipantArgs = { - id: Scalars['ID']; + id?: InputMaybe; }; export type MutationDeleteMessageParticipantsArgs = { - filter: MessageParticipantFilterInput; + filter?: InputMaybe; }; export type MutationDeleteMessageThreadArgs = { - id: Scalars['ID']; + id?: InputMaybe; }; export type MutationDeleteMessageThreadsArgs = { - filter: MessageThreadFilterInput; + filter?: InputMaybe; }; export type MutationDeleteMessagesArgs = { - filter: MessageFilterInput; + filter?: InputMaybe; }; @@ -2795,92 +4137,82 @@ export type MutationDeleteOneObjectArgs = { export type MutationDeleteOpportunitiesArgs = { - filter: OpportunityFilterInput; + filter?: InputMaybe; }; export type MutationDeleteOpportunityArgs = { - id: Scalars['ID']; + id?: InputMaybe; }; export type MutationDeletePeopleArgs = { - filter: PersonFilterInput; + filter?: InputMaybe; }; export type MutationDeletePersonArgs = { - id: Scalars['ID']; -}; - - -export type MutationDeletePipelineStepArgs = { - id: Scalars['ID']; -}; - - -export type MutationDeletePipelineStepsArgs = { - filter: PipelineStepFilterInput; + id?: InputMaybe; }; export type MutationDeleteViewArgs = { - id: Scalars['ID']; + id?: InputMaybe; }; export type MutationDeleteViewFieldArgs = { - id: Scalars['ID']; + id?: InputMaybe; }; export type MutationDeleteViewFieldsArgs = { - filter: ViewFieldFilterInput; + filter?: InputMaybe; }; export type MutationDeleteViewFilterArgs = { - id: Scalars['ID']; + id?: InputMaybe; }; export type MutationDeleteViewFiltersArgs = { - filter: ViewFilterFilterInput; + filter?: InputMaybe; }; export type MutationDeleteViewSortArgs = { - id: Scalars['ID']; + id?: InputMaybe; }; export type MutationDeleteViewSortsArgs = { - filter: ViewSortFilterInput; + filter?: InputMaybe; }; export type MutationDeleteViewsArgs = { - filter: ViewFilterInput; + filter?: InputMaybe; }; export type MutationDeleteWebhookArgs = { - id: Scalars['ID']; + id?: InputMaybe; }; export type MutationDeleteWebhooksArgs = { - filter: WebhookFilterInput; + filter?: InputMaybe; }; export type MutationDeleteWorkspaceMemberArgs = { - id: Scalars['ID']; + id?: InputMaybe; }; export type MutationDeleteWorkspaceMembersArgs = { - filter: WorkspaceMemberFilterInput; + filter?: InputMaybe; }; @@ -2889,118 +4221,145 @@ export type MutationEmailPasswordResetLinkArgs = { }; +export type MutationExchangeAuthorizationCodeArgs = { + authorizationCode: Scalars['String']; + clientSecret?: InputMaybe; + codeVerifier?: InputMaybe; +}; + + export type MutationExecuteQuickActionOnActivityArgs = { - id: Scalars['ID']; + id?: InputMaybe; }; export type MutationExecuteQuickActionOnActivityTargetArgs = { - id: Scalars['ID']; + id?: InputMaybe; }; export type MutationExecuteQuickActionOnApiKeyArgs = { - id: Scalars['ID']; + id?: InputMaybe; }; export type MutationExecuteQuickActionOnAttachmentArgs = { - id: Scalars['ID']; + id?: InputMaybe; }; export type MutationExecuteQuickActionOnBlocklistArgs = { - id: Scalars['ID']; + id?: InputMaybe; +}; + + +export type MutationExecuteQuickActionOnCalendarChannelArgs = { + id?: InputMaybe; +}; + + +export type MutationExecuteQuickActionOnCalendarChannelEventAssociationArgs = { + id?: InputMaybe; +}; + + +export type MutationExecuteQuickActionOnCalendarEventArgs = { + id?: InputMaybe; +}; + + +export type MutationExecuteQuickActionOnCalendarEventParticipantArgs = { + id?: InputMaybe; }; export type MutationExecuteQuickActionOnCommentArgs = { - id: Scalars['ID']; + id?: InputMaybe; }; export type MutationExecuteQuickActionOnCompanyArgs = { - id: Scalars['ID']; + id?: InputMaybe; }; export type MutationExecuteQuickActionOnConnectedAccountArgs = { - id: Scalars['ID']; + id?: InputMaybe; +}; + + +export type MutationExecuteQuickActionOnEventArgs = { + id?: InputMaybe; }; export type MutationExecuteQuickActionOnFavoriteArgs = { - id: Scalars['ID']; + id?: InputMaybe; }; export type MutationExecuteQuickActionOnMessageArgs = { - id: Scalars['ID']; + id?: InputMaybe; }; export type MutationExecuteQuickActionOnMessageChannelArgs = { - id: Scalars['ID']; + id?: InputMaybe; }; export type MutationExecuteQuickActionOnMessageChannelMessageAssociationArgs = { - id: Scalars['ID']; + id?: InputMaybe; }; export type MutationExecuteQuickActionOnMessageParticipantArgs = { - id: Scalars['ID']; + id?: InputMaybe; }; export type MutationExecuteQuickActionOnMessageThreadArgs = { - id: Scalars['ID']; + id?: InputMaybe; }; export type MutationExecuteQuickActionOnOpportunityArgs = { - id: Scalars['ID']; + id?: InputMaybe; }; export type MutationExecuteQuickActionOnPersonArgs = { - id: Scalars['ID']; -}; - - -export type MutationExecuteQuickActionOnPipelineStepArgs = { - id: Scalars['ID']; + id?: InputMaybe; }; export type MutationExecuteQuickActionOnViewArgs = { - id: Scalars['ID']; + id?: InputMaybe; }; export type MutationExecuteQuickActionOnViewFieldArgs = { - id: Scalars['ID']; + id?: InputMaybe; }; export type MutationExecuteQuickActionOnViewFilterArgs = { - id: Scalars['ID']; + id?: InputMaybe; }; export type MutationExecuteQuickActionOnViewSortArgs = { - id: Scalars['ID']; + id?: InputMaybe; }; export type MutationExecuteQuickActionOnWebhookArgs = { - id: Scalars['ID']; + id?: InputMaybe; }; export type MutationExecuteQuickActionOnWorkspaceMemberArgs = { - id: Scalars['ID']; + id?: InputMaybe; }; @@ -3010,13 +4369,18 @@ export type MutationGenerateApiKeyTokenArgs = { }; +export type MutationGenerateJwtArgs = { + workspaceId: Scalars['String']; +}; + + export type MutationImpersonateArgs = { userId: Scalars['String']; }; export type MutationRenewTokenArgs = { - refreshToken: Scalars['String']; + appToken: Scalars['String']; }; @@ -3027,183 +4391,249 @@ export type MutationSignUpArgs = { }; +export type MutationTrackArgs = { + data: Scalars['JSON']; + type: Scalars['String']; +}; + + export type MutationUpdateActivitiesArgs = { - data: ActivityUpdateInput; - filter: ActivityFilterInput; + data?: InputMaybe; + filter?: InputMaybe; }; export type MutationUpdateActivityArgs = { - data: ActivityUpdateInput; - id: Scalars['ID']; + data?: InputMaybe; + id?: InputMaybe; }; export type MutationUpdateActivityTargetArgs = { - data: ActivityTargetUpdateInput; - id: Scalars['ID']; + data?: InputMaybe; + id?: InputMaybe; }; export type MutationUpdateActivityTargetsArgs = { - data: ActivityTargetUpdateInput; - filter: ActivityTargetFilterInput; + data?: InputMaybe; + filter?: InputMaybe; }; export type MutationUpdateApiKeyArgs = { - data: ApiKeyUpdateInput; - id: Scalars['ID']; + data?: InputMaybe; + id?: InputMaybe; }; export type MutationUpdateApiKeysArgs = { - data: ApiKeyUpdateInput; - filter: ApiKeyFilterInput; + data?: InputMaybe; + filter?: InputMaybe; }; export type MutationUpdateAttachmentArgs = { - data: AttachmentUpdateInput; - id: Scalars['ID']; + data?: InputMaybe; + id?: InputMaybe; }; export type MutationUpdateAttachmentsArgs = { - data: AttachmentUpdateInput; - filter: AttachmentFilterInput; + data?: InputMaybe; + filter?: InputMaybe; }; export type MutationUpdateBlocklistArgs = { - data: BlocklistUpdateInput; - id: Scalars['ID']; + data?: InputMaybe; + id?: InputMaybe; }; export type MutationUpdateBlocklistsArgs = { - data: BlocklistUpdateInput; - filter: BlocklistFilterInput; + data?: InputMaybe; + filter?: InputMaybe; +}; + + +export type MutationUpdateCalendarChannelArgs = { + data?: InputMaybe; + id?: InputMaybe; +}; + + +export type MutationUpdateCalendarChannelEventAssociationArgs = { + data?: InputMaybe; + id?: InputMaybe; +}; + + +export type MutationUpdateCalendarChannelEventAssociationsArgs = { + data?: InputMaybe; + filter?: InputMaybe; +}; + + +export type MutationUpdateCalendarChannelsArgs = { + data?: InputMaybe; + filter?: InputMaybe; +}; + + +export type MutationUpdateCalendarEventArgs = { + data?: InputMaybe; + id?: InputMaybe; +}; + + +export type MutationUpdateCalendarEventParticipantArgs = { + data?: InputMaybe; + id?: InputMaybe; +}; + + +export type MutationUpdateCalendarEventParticipantsArgs = { + data?: InputMaybe; + filter?: InputMaybe; +}; + + +export type MutationUpdateCalendarEventsArgs = { + data?: InputMaybe; + filter?: InputMaybe; }; export type MutationUpdateCommentArgs = { - data: CommentUpdateInput; - id: Scalars['ID']; + data?: InputMaybe; + id?: InputMaybe; }; export type MutationUpdateCommentsArgs = { - data: CommentUpdateInput; - filter: CommentFilterInput; + data?: InputMaybe; + filter?: InputMaybe; }; export type MutationUpdateCompaniesArgs = { - data: CompanyUpdateInput; - filter: CompanyFilterInput; + data?: InputMaybe; + filter?: InputMaybe; }; export type MutationUpdateCompanyArgs = { - data: CompanyUpdateInput; - id: Scalars['ID']; + data?: InputMaybe; + id?: InputMaybe; }; export type MutationUpdateConnectedAccountArgs = { - data: ConnectedAccountUpdateInput; - id: Scalars['ID']; + data?: InputMaybe; + id?: InputMaybe; }; export type MutationUpdateConnectedAccountsArgs = { - data: ConnectedAccountUpdateInput; - filter: ConnectedAccountFilterInput; + data?: InputMaybe; + filter?: InputMaybe; +}; + + +export type MutationUpdateEventArgs = { + data?: InputMaybe; + id?: InputMaybe; +}; + + +export type MutationUpdateEventsArgs = { + data?: InputMaybe; + filter?: InputMaybe; }; export type MutationUpdateFavoriteArgs = { - data: FavoriteUpdateInput; - id: Scalars['ID']; + data?: InputMaybe; + id?: InputMaybe; }; export type MutationUpdateFavoritesArgs = { - data: FavoriteUpdateInput; - filter: FavoriteFilterInput; + data?: InputMaybe; + filter?: InputMaybe; }; export type MutationUpdateMessageArgs = { - data: MessageUpdateInput; - id: Scalars['ID']; + data?: InputMaybe; + id?: InputMaybe; }; export type MutationUpdateMessageChannelArgs = { - data: MessageChannelUpdateInput; - id: Scalars['ID']; + data?: InputMaybe; + id?: InputMaybe; }; export type MutationUpdateMessageChannelMessageAssociationArgs = { - data: MessageChannelMessageAssociationUpdateInput; - id: Scalars['ID']; + data?: InputMaybe; + id?: InputMaybe; }; export type MutationUpdateMessageChannelMessageAssociationsArgs = { - data: MessageChannelMessageAssociationUpdateInput; - filter: MessageChannelMessageAssociationFilterInput; + data?: InputMaybe; + filter?: InputMaybe; }; export type MutationUpdateMessageChannelsArgs = { - data: MessageChannelUpdateInput; - filter: MessageChannelFilterInput; + data?: InputMaybe; + filter?: InputMaybe; }; export type MutationUpdateMessageParticipantArgs = { - data: MessageParticipantUpdateInput; - id: Scalars['ID']; + data?: InputMaybe; + id?: InputMaybe; }; export type MutationUpdateMessageParticipantsArgs = { - data: MessageParticipantUpdateInput; - filter: MessageParticipantFilterInput; + data?: InputMaybe; + filter?: InputMaybe; }; export type MutationUpdateMessageThreadArgs = { - data: MessageThreadUpdateInput; - id: Scalars['ID']; + data?: InputMaybe; + id?: InputMaybe; }; export type MutationUpdateMessageThreadsArgs = { - data: MessageThreadUpdateInput; - filter: MessageThreadFilterInput; + data?: InputMaybe; + filter?: InputMaybe; }; export type MutationUpdateMessagesArgs = { - data: MessageUpdateInput; - filter: MessageFilterInput; + data?: InputMaybe; + filter?: InputMaybe; }; export type MutationUpdateOpportunitiesArgs = { - data: OpportunityUpdateInput; - filter: OpportunityFilterInput; + data?: InputMaybe; + filter?: InputMaybe; }; export type MutationUpdateOpportunityArgs = { - data: OpportunityUpdateInput; - id: Scalars['ID']; + data?: InputMaybe; + id?: InputMaybe; }; @@ -3214,86 +4644,74 @@ export type MutationUpdatePasswordViaResetTokenArgs = { export type MutationUpdatePeopleArgs = { - data: PersonUpdateInput; - filter: PersonFilterInput; + data?: InputMaybe; + filter?: InputMaybe; }; export type MutationUpdatePersonArgs = { - data: PersonUpdateInput; - id: Scalars['ID']; -}; - - -export type MutationUpdatePipelineStepArgs = { - data: PipelineStepUpdateInput; - id: Scalars['ID']; -}; - - -export type MutationUpdatePipelineStepsArgs = { - data: PipelineStepUpdateInput; - filter: PipelineStepFilterInput; + data?: InputMaybe; + id?: InputMaybe; }; export type MutationUpdateViewArgs = { - data: ViewUpdateInput; - id: Scalars['ID']; + data?: InputMaybe; + id?: InputMaybe; }; export type MutationUpdateViewFieldArgs = { - data: ViewFieldUpdateInput; - id: Scalars['ID']; + data?: InputMaybe; + id?: InputMaybe; }; export type MutationUpdateViewFieldsArgs = { - data: ViewFieldUpdateInput; - filter: ViewFieldFilterInput; + data?: InputMaybe; + filter?: InputMaybe; }; export type MutationUpdateViewFilterArgs = { - data: ViewFilterUpdateInput; - id: Scalars['ID']; + data?: InputMaybe; + id?: InputMaybe; }; export type MutationUpdateViewFiltersArgs = { - data: ViewFilterUpdateInput; - filter: ViewFilterFilterInput; + data?: InputMaybe; + filter?: InputMaybe; }; export type MutationUpdateViewSortArgs = { - data: ViewSortUpdateInput; - id: Scalars['ID']; + data?: InputMaybe; + id?: InputMaybe; }; export type MutationUpdateViewSortsArgs = { - data: ViewSortUpdateInput; - filter: ViewSortFilterInput; + data?: InputMaybe; + filter?: InputMaybe; }; export type MutationUpdateViewsArgs = { - data: ViewUpdateInput; - filter: ViewFilterInput; + data?: InputMaybe; + filter?: InputMaybe; }; export type MutationUpdateWebhookArgs = { - data: WebhookUpdateInput; - id: Scalars['ID']; + data?: InputMaybe; + id?: InputMaybe; }; export type MutationUpdateWebhooksArgs = { - data: WebhookUpdateInput; - filter: WebhookFilterInput; + data?: InputMaybe; + filter?: InputMaybe; }; @@ -3303,14 +4721,14 @@ export type MutationUpdateWorkspaceArgs = { export type MutationUpdateWorkspaceMemberArgs = { - data: WorkspaceMemberUpdateInput; - id: Scalars['ID']; + data?: InputMaybe; + id?: InputMaybe; }; export type MutationUpdateWorkspaceMembersArgs = { - data: WorkspaceMemberUpdateInput; - filter: WorkspaceMemberFilterInput; + data?: InputMaybe; + filter?: InputMaybe; }; @@ -3345,8 +4763,6 @@ export type ObjectConnection = { edges: Array; /** Paging information */ pageInfo: PageInfo; - /** Fetch total count of records */ - totalCount: Scalars['Int']; }; export type ObjectFieldsConnection = { @@ -3354,8 +4770,6 @@ export type ObjectFieldsConnection = { edges: Array; /** Paging information */ pageInfo: PageInfo; - /** Fetch total count of records */ - totalCount: Scalars['Int']; }; /** An opportunity */ @@ -3372,28 +4786,29 @@ export type Opportunity = { company?: Maybe; /** Opportunity company id foreign key */ companyId?: Maybe; - createdAt: Scalars['DateTime']; + /** Creation date */ + createdAt?: Maybe; deletedAt?: Maybe; + /** Events linked to the opportunity. */ + events?: Maybe; /** Favorites linked to the opportunity */ favorites?: Maybe; - id: Scalars['ID']; + /** Id */ + id?: Maybe; /** The opportunity name */ - name: Scalars['String']; - /** Opportunity pipeline step */ - pipelineStep?: Maybe; - /** Opportunity pipeline step id foreign key */ - pipelineStepId?: Maybe; + name?: Maybe; /** Opportunity point of contact */ pointOfContact?: Maybe; /** Opportunity point of contact id foreign key */ pointOfContactId?: Maybe; - /** Position */ - position?: Maybe; + /** Opportunity record position */ + position?: Maybe; /** Opportunity probability */ - probability: Scalars['String']; + probability?: Maybe; /** Opportunity stage */ - stage: OpportunityStageEnum; - updatedAt: Scalars['DateTime']; + stage?: Maybe; + /** Update date */ + updatedAt?: Maybe; }; @@ -3419,6 +4834,17 @@ export type OpportunityAttachmentsArgs = { }; +/** An opportunity */ +export type OpportunityEventsArgs = { + after?: InputMaybe; + before?: InputMaybe; + filter?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + orderBy?: InputMaybe; +}; + + /** An opportunity */ export type OpportunityFavoritesArgs = { after?: InputMaybe; @@ -3431,8 +4857,8 @@ export type OpportunityFavoritesArgs = { /** An opportunity */ export type OpportunityConnection = { - edges: Array; - pageInfo: PageInfo; + edges?: Maybe>; + pageInfo?: Maybe; /** Total number of records in the connection */ totalCount?: Maybe; }; @@ -3445,28 +4871,29 @@ export type OpportunityCreateInput = { closeDate?: InputMaybe; /** Opportunity company id foreign key */ companyId?: InputMaybe; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; + /** Id */ id?: InputMaybe; /** The opportunity name */ name?: InputMaybe; - /** Opportunity pipeline step id foreign key */ - pipelineStepId?: InputMaybe; /** Opportunity point of contact id foreign key */ pointOfContactId?: InputMaybe; - /** Position */ - position?: InputMaybe; + /** Opportunity record position */ + position?: InputMaybe; /** Opportunity probability */ probability?: InputMaybe; /** Opportunity stage */ stage?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; }; /** An opportunity */ export type OpportunityEdge = { - cursor: Scalars['Cursor']; - node: Opportunity; + cursor?: Maybe; + node?: Maybe; }; /** An opportunity */ @@ -3478,23 +4905,24 @@ export type OpportunityFilterInput = { closeDate?: InputMaybe; /** Opportunity company id foreign key */ companyId?: InputMaybe; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; + /** Id */ id?: InputMaybe; /** The opportunity name */ name?: InputMaybe; not?: InputMaybe; or?: InputMaybe>>; - /** Opportunity pipeline step id foreign key */ - pipelineStepId?: InputMaybe; /** Opportunity point of contact id foreign key */ pointOfContactId?: InputMaybe; - /** Position */ + /** Opportunity record position */ position?: InputMaybe; /** Opportunity probability */ probability?: InputMaybe; /** Opportunity stage */ stage?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; }; @@ -3506,21 +4934,22 @@ export type OpportunityOrderByInput = { closeDate?: InputMaybe; /** Opportunity company id foreign key */ companyId?: InputMaybe; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; + /** Id */ id?: InputMaybe; /** The opportunity name */ name?: InputMaybe; - /** Opportunity pipeline step id foreign key */ - pipelineStepId?: InputMaybe; /** Opportunity point of contact id foreign key */ pointOfContactId?: InputMaybe; - /** Position */ + /** Opportunity record position */ position?: InputMaybe; /** Opportunity probability */ probability?: InputMaybe; /** Opportunity stage */ stage?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; }; @@ -3553,21 +4982,22 @@ export type OpportunityUpdateInput = { closeDate?: InputMaybe; /** Opportunity company id foreign key */ companyId?: InputMaybe; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; + /** Id */ id?: InputMaybe; /** The opportunity name */ name?: InputMaybe; - /** Opportunity pipeline step id foreign key */ - pipelineStepId?: InputMaybe; /** Opportunity point of contact id foreign key */ pointOfContactId?: InputMaybe; - /** Position */ - position?: InputMaybe; + /** Opportunity record position */ + position?: InputMaybe; /** Opportunity probability */ probability?: InputMaybe; /** Opportunity stage */ stage?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; }; @@ -3601,22 +5031,28 @@ export type Person = { /** Attachments linked to the contact. */ attachments?: Maybe; /** Contact’s avatar */ - avatarUrl: Scalars['String']; + avatarUrl?: Maybe; + /** Calendar Event Participants */ + calendarEventParticipants?: Maybe; /** Contact’s city */ - city: Scalars['String']; + city?: Maybe; /** Contact’s company */ company?: Maybe; /** Contact’s company id foreign key */ companyId?: Maybe; - createdAt: Scalars['DateTime']; + /** Creation date */ + createdAt?: Maybe; deletedAt?: Maybe; /** Contact’s Email */ - email: Scalars['String']; + email?: Maybe; + /** Events linked to the company */ + events?: Maybe; /** Favorites linked to the contact */ favorites?: Maybe; - id: Scalars['ID']; + /** Id */ + id?: Maybe; /** Contact’s job title */ - jobTitle: Scalars['String']; + jobTitle?: Maybe; /** Contact’s Linkedin account */ linkedinLink?: Maybe; /** Message Participants */ @@ -3624,12 +5060,13 @@ export type Person = { /** Contact’s name */ name?: Maybe; /** Contact’s phone number */ - phone: Scalars['String']; + phone?: Maybe; /** Point of Contact for Opportunities */ pointOfContactForOpportunities?: Maybe; - /** Record Position */ - position?: Maybe; - updatedAt: Scalars['DateTime']; + /** Person record Position */ + position?: Maybe; + /** Update date */ + updatedAt?: Maybe; /** Contact’s X/Twitter account */ xLink?: Maybe; }; @@ -3657,6 +5094,28 @@ export type PersonAttachmentsArgs = { }; +/** A person */ +export type PersonCalendarEventParticipantsArgs = { + after?: InputMaybe; + before?: InputMaybe; + filter?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + orderBy?: InputMaybe; +}; + + +/** A person */ +export type PersonEventsArgs = { + after?: InputMaybe; + before?: InputMaybe; + filter?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + orderBy?: InputMaybe; +}; + + /** A person */ export type PersonFavoritesArgs = { after?: InputMaybe; @@ -3691,8 +5150,8 @@ export type PersonPointOfContactForOpportunitiesArgs = { /** A person */ export type PersonConnection = { - edges: Array; - pageInfo: PageInfo; + edges?: Maybe>; + pageInfo?: Maybe; /** Total number of records in the connection */ totalCount?: Maybe; }; @@ -3705,10 +5164,12 @@ export type PersonCreateInput = { city?: InputMaybe; /** Contact’s company id foreign key */ companyId?: InputMaybe; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** Contact’s Email */ email?: InputMaybe; + /** Id */ id?: InputMaybe; /** Contact’s job title */ jobTitle?: InputMaybe; @@ -3718,8 +5179,9 @@ export type PersonCreateInput = { name?: InputMaybe; /** Contact’s phone number */ phone?: InputMaybe; - /** Record Position */ - position?: InputMaybe; + /** Person record Position */ + position?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; /** Contact’s X/Twitter account */ xLink?: InputMaybe; @@ -3727,8 +5189,8 @@ export type PersonCreateInput = { /** A person */ export type PersonEdge = { - cursor: Scalars['Cursor']; - node: Person; + cursor?: Maybe; + node?: Maybe; }; /** A person */ @@ -3740,10 +5202,12 @@ export type PersonFilterInput = { city?: InputMaybe; /** Contact’s company id foreign key */ companyId?: InputMaybe; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** Contact’s Email */ email?: InputMaybe; + /** Id */ id?: InputMaybe; /** Contact’s job title */ jobTitle?: InputMaybe; @@ -3755,8 +5219,9 @@ export type PersonFilterInput = { or?: InputMaybe>>; /** Contact’s phone number */ phone?: InputMaybe; - /** Record Position */ + /** Person record Position */ position?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; /** Contact’s X/Twitter account */ xLink?: InputMaybe; @@ -3770,10 +5235,12 @@ export type PersonOrderByInput = { city?: InputMaybe; /** Contact’s company id foreign key */ companyId?: InputMaybe; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** Contact’s Email */ email?: InputMaybe; + /** Id */ id?: InputMaybe; /** Contact’s job title */ jobTitle?: InputMaybe; @@ -3783,8 +5250,9 @@ export type PersonOrderByInput = { name?: InputMaybe; /** Contact’s phone number */ phone?: InputMaybe; - /** Record Position */ + /** Person record Position */ position?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; /** Contact’s X/Twitter account */ xLink?: InputMaybe; @@ -3798,10 +5266,12 @@ export type PersonUpdateInput = { city?: InputMaybe; /** Contact’s company id foreign key */ companyId?: InputMaybe; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** Contact’s Email */ email?: InputMaybe; + /** Id */ id?: InputMaybe; /** Contact’s job title */ jobTitle?: InputMaybe; @@ -3811,113 +5281,14 @@ export type PersonUpdateInput = { name?: InputMaybe; /** Contact’s phone number */ phone?: InputMaybe; - /** Record Position */ - position?: InputMaybe; + /** Person record Position */ + position?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; /** Contact’s X/Twitter account */ xLink?: InputMaybe; }; -/** A pipeline step */ -export type PipelineStep = { - /** Pipeline Step color */ - color: Scalars['String']; - createdAt: Scalars['DateTime']; - deletedAt?: Maybe; - id: Scalars['ID']; - /** Pipeline Step name */ - name: Scalars['String']; - /** Opportunities linked to the step. */ - opportunities?: Maybe; - /** Pipeline Step position */ - position?: Maybe; - updatedAt: Scalars['DateTime']; -}; - - -/** A pipeline step */ -export type PipelineStepOpportunitiesArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - orderBy?: InputMaybe; -}; - -/** A pipeline step */ -export type PipelineStepConnection = { - edges: Array; - pageInfo: PageInfo; - /** Total number of records in the connection */ - totalCount?: Maybe; -}; - -/** A pipeline step */ -export type PipelineStepCreateInput = { - /** Pipeline Step color */ - color?: InputMaybe; - createdAt?: InputMaybe; - deletedAt?: InputMaybe; - id?: InputMaybe; - /** Pipeline Step name */ - name?: InputMaybe; - /** Pipeline Step position */ - position?: InputMaybe; - updatedAt?: InputMaybe; -}; - -/** A pipeline step */ -export type PipelineStepEdge = { - cursor: Scalars['Cursor']; - node: PipelineStep; -}; - -/** A pipeline step */ -export type PipelineStepFilterInput = { - and?: InputMaybe>>; - /** Pipeline Step color */ - color?: InputMaybe; - createdAt?: InputMaybe; - deletedAt?: InputMaybe; - id?: InputMaybe; - /** Pipeline Step name */ - name?: InputMaybe; - not?: InputMaybe; - or?: InputMaybe>>; - /** Pipeline Step position */ - position?: InputMaybe; - updatedAt?: InputMaybe; -}; - -/** A pipeline step */ -export type PipelineStepOrderByInput = { - /** Pipeline Step color */ - color?: InputMaybe; - createdAt?: InputMaybe; - deletedAt?: InputMaybe; - id?: InputMaybe; - /** Pipeline Step name */ - name?: InputMaybe; - /** Pipeline Step position */ - position?: InputMaybe; - updatedAt?: InputMaybe; -}; - -/** A pipeline step */ -export type PipelineStepUpdateInput = { - /** Pipeline Step color */ - color?: InputMaybe; - createdAt?: InputMaybe; - deletedAt?: InputMaybe; - id?: InputMaybe; - /** Pipeline Step name */ - name?: InputMaybe; - /** Pipeline Step position */ - position?: InputMaybe; - updatedAt?: InputMaybe; -}; - export type ProductPriceEntity = { created: Scalars['Float']; recurringInterval: Scalars['String']; @@ -3931,87 +5302,102 @@ export type ProductPricesEntity = { }; export type Query = { - activities: ActivityConnection; - activity: Activity; - activityDuplicates: ActivityConnection; - activityTarget: ActivityTarget; - activityTargetDuplicates: ActivityTargetConnection; - activityTargets: ActivityTargetConnection; - apiKey: ApiKey; - apiKeyDuplicates: ApiKeyConnection; - apiKeys: ApiKeyConnection; - attachment: Attachment; - attachmentDuplicates: AttachmentConnection; - attachments: AttachmentConnection; - blocklist: Blocklist; - blocklistDuplicates: BlocklistConnection; - blocklists: BlocklistConnection; + activities?: Maybe; + activity?: Maybe; + activityDuplicates?: Maybe; + activityTarget?: Maybe; + activityTargetDuplicates?: Maybe; + activityTargets?: Maybe; + apiKey?: Maybe; + apiKeyDuplicates?: Maybe; + apiKeys?: Maybe; + attachment?: Maybe; + attachmentDuplicates?: Maybe; + attachments?: Maybe; + billingPortalSession: SessionEntity; + blocklist?: Maybe; + blocklistDuplicates?: Maybe; + blocklists?: Maybe; + calendarChannel?: Maybe; + calendarChannelDuplicates?: Maybe; + calendarChannelEventAssociation?: Maybe; + calendarChannelEventAssociationDuplicates?: Maybe; + calendarChannelEventAssociations?: Maybe; + calendarChannels?: Maybe; + calendarEvent?: Maybe; + calendarEventDuplicates?: Maybe; + calendarEventParticipant?: Maybe; + calendarEventParticipantDuplicates?: Maybe; + calendarEventParticipants?: Maybe; + calendarEvents?: Maybe; checkUserExists: UserExists; checkWorkspaceInviteHashIsValid: WorkspaceInviteHashValid; clientConfig: ClientConfig; - comment: Comment; - commentDuplicates: CommentConnection; - comments: CommentConnection; - companies: CompanyConnection; - company: Company; - companyDuplicates: CompanyConnection; - connectedAccount: ConnectedAccount; - connectedAccountDuplicates: ConnectedAccountConnection; - connectedAccounts: ConnectedAccountConnection; + comment?: Maybe; + commentDuplicates?: Maybe; + comments?: Maybe; + companies?: Maybe; + company?: Maybe; + companyDuplicates?: Maybe; + connectedAccount?: Maybe; + connectedAccountDuplicates?: Maybe; + connectedAccounts?: Maybe; currentUser: User; currentWorkspace: Workspace; - favorite: Favorite; - favoriteDuplicates: FavoriteConnection; - favorites: FavoriteConnection; + event?: Maybe; + eventDuplicates?: Maybe; + events?: Maybe; + favorite?: Maybe; + favoriteDuplicates?: Maybe; + favorites?: Maybe; findWorkspaceFromInviteHash: Workspace; getProductPrices: ProductPricesEntity; + getTimelineCalendarEventsFromCompanyId: TimelineCalendarEventsWithTotal; + getTimelineCalendarEventsFromPersonId: TimelineCalendarEventsWithTotal; getTimelineThreadsFromCompanyId: TimelineThreadsWithTotal; getTimelineThreadsFromPersonId: TimelineThreadsWithTotal; - message: Message; - messageChannel: MessageChannel; - messageChannelDuplicates: MessageChannelConnection; - messageChannelMessageAssociation: MessageChannelMessageAssociation; - messageChannelMessageAssociationDuplicates: MessageChannelMessageAssociationConnection; - messageChannelMessageAssociations: MessageChannelMessageAssociationConnection; - messageChannels: MessageChannelConnection; - messageDuplicates: MessageConnection; - messageParticipant: MessageParticipant; - messageParticipantDuplicates: MessageParticipantConnection; - messageParticipants: MessageParticipantConnection; - messageThread: MessageThread; - messageThreadDuplicates: MessageThreadConnection; - messageThreads: MessageThreadConnection; - messages: MessageConnection; + message?: Maybe; + messageChannel?: Maybe; + messageChannelDuplicates?: Maybe; + messageChannelMessageAssociation?: Maybe; + messageChannelMessageAssociationDuplicates?: Maybe; + messageChannelMessageAssociations?: Maybe; + messageChannels?: Maybe; + messageDuplicates?: Maybe; + messageParticipant?: Maybe; + messageParticipantDuplicates?: Maybe; + messageParticipants?: Maybe; + messageThread?: Maybe; + messageThreadDuplicates?: Maybe; + messageThreads?: Maybe; + messages?: Maybe; object: Object; objects: ObjectConnection; - opportunities: OpportunityConnection; - opportunity: Opportunity; - opportunityDuplicates: OpportunityConnection; - people: PersonConnection; - person: Person; - personDuplicates: PersonConnection; - pipelineStep: PipelineStep; - pipelineStepDuplicates: PipelineStepConnection; - pipelineSteps: PipelineStepConnection; + opportunities?: Maybe; + opportunity?: Maybe; + opportunityDuplicates?: Maybe; + people?: Maybe; + person?: Maybe; + personDuplicates?: Maybe; validatePasswordResetToken: ValidatePasswordResetToken; - view: View; - viewDuplicates: ViewConnection; - viewField: ViewField; - viewFieldDuplicates: ViewFieldConnection; - viewFields: ViewFieldConnection; - viewFilter: ViewFilter; - viewFilterDuplicates: ViewFilterConnection; - viewFilters: ViewFilterConnection; - viewSort: ViewSort; - viewSortDuplicates: ViewSortConnection; - viewSorts: ViewSortConnection; - views: ViewConnection; - webhook: Webhook; - webhookDuplicates: WebhookConnection; - webhooks: WebhookConnection; - workspaceMember: WorkspaceMember; - workspaceMemberDuplicates: WorkspaceMemberConnection; - workspaceMembers: WorkspaceMemberConnection; + view?: Maybe; + viewDuplicates?: Maybe; + viewField?: Maybe; + viewFieldDuplicates?: Maybe; + viewFields?: Maybe; + viewFilter?: Maybe; + viewFilterDuplicates?: Maybe; + viewFilters?: Maybe; + viewSort?: Maybe; + viewSortDuplicates?: Maybe; + viewSorts?: Maybe; + views?: Maybe; + webhook?: Maybe; + webhookDuplicates?: Maybe; + webhooks?: Maybe; + workspaceMember?: Maybe; + workspaceMemberDuplicates?: Maybe; + workspaceMembers?: Maybe; }; @@ -4026,7 +5412,7 @@ export type QueryActivitiesArgs = { export type QueryActivityArgs = { - filter: ActivityFilterInput; + filter?: InputMaybe; }; @@ -4037,7 +5423,7 @@ export type QueryActivityDuplicatesArgs = { export type QueryActivityTargetArgs = { - filter: ActivityTargetFilterInput; + filter?: InputMaybe; }; @@ -4058,7 +5444,7 @@ export type QueryActivityTargetsArgs = { export type QueryApiKeyArgs = { - filter: ApiKeyFilterInput; + filter?: InputMaybe; }; @@ -4079,7 +5465,7 @@ export type QueryApiKeysArgs = { export type QueryAttachmentArgs = { - filter: AttachmentFilterInput; + filter?: InputMaybe; }; @@ -4099,8 +5485,13 @@ export type QueryAttachmentsArgs = { }; +export type QueryBillingPortalSessionArgs = { + returnUrlPath?: InputMaybe; +}; + + export type QueryBlocklistArgs = { - filter: BlocklistFilterInput; + filter?: InputMaybe; }; @@ -4120,6 +5511,90 @@ export type QueryBlocklistsArgs = { }; +export type QueryCalendarChannelArgs = { + filter?: InputMaybe; +}; + + +export type QueryCalendarChannelDuplicatesArgs = { + data?: InputMaybe; + id?: InputMaybe; +}; + + +export type QueryCalendarChannelEventAssociationArgs = { + filter?: InputMaybe; +}; + + +export type QueryCalendarChannelEventAssociationDuplicatesArgs = { + data?: InputMaybe; + id?: InputMaybe; +}; + + +export type QueryCalendarChannelEventAssociationsArgs = { + after?: InputMaybe; + before?: InputMaybe; + filter?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + orderBy?: InputMaybe; +}; + + +export type QueryCalendarChannelsArgs = { + after?: InputMaybe; + before?: InputMaybe; + filter?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + orderBy?: InputMaybe; +}; + + +export type QueryCalendarEventArgs = { + filter?: InputMaybe; +}; + + +export type QueryCalendarEventDuplicatesArgs = { + data?: InputMaybe; + id?: InputMaybe; +}; + + +export type QueryCalendarEventParticipantArgs = { + filter?: InputMaybe; +}; + + +export type QueryCalendarEventParticipantDuplicatesArgs = { + data?: InputMaybe; + id?: InputMaybe; +}; + + +export type QueryCalendarEventParticipantsArgs = { + after?: InputMaybe; + before?: InputMaybe; + filter?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + orderBy?: InputMaybe; +}; + + +export type QueryCalendarEventsArgs = { + after?: InputMaybe; + before?: InputMaybe; + filter?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + orderBy?: InputMaybe; +}; + + export type QueryCheckUserExistsArgs = { email: Scalars['String']; }; @@ -4131,7 +5606,7 @@ export type QueryCheckWorkspaceInviteHashIsValidArgs = { export type QueryCommentArgs = { - filter: CommentFilterInput; + filter?: InputMaybe; }; @@ -4162,7 +5637,7 @@ export type QueryCompaniesArgs = { export type QueryCompanyArgs = { - filter: CompanyFilterInput; + filter?: InputMaybe; }; @@ -4173,7 +5648,7 @@ export type QueryCompanyDuplicatesArgs = { export type QueryConnectedAccountArgs = { - filter: ConnectedAccountFilterInput; + filter?: InputMaybe; }; @@ -4193,8 +5668,29 @@ export type QueryConnectedAccountsArgs = { }; +export type QueryEventArgs = { + filter?: InputMaybe; +}; + + +export type QueryEventDuplicatesArgs = { + data?: InputMaybe; + id?: InputMaybe; +}; + + +export type QueryEventsArgs = { + after?: InputMaybe; + before?: InputMaybe; + filter?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + orderBy?: InputMaybe; +}; + + export type QueryFavoriteArgs = { - filter: FavoriteFilterInput; + filter?: InputMaybe; }; @@ -4224,6 +5720,20 @@ export type QueryGetProductPricesArgs = { }; +export type QueryGetTimelineCalendarEventsFromCompanyIdArgs = { + companyId: Scalars['ID']; + page: Scalars['Int']; + pageSize: Scalars['Int']; +}; + + +export type QueryGetTimelineCalendarEventsFromPersonIdArgs = { + page: Scalars['Int']; + pageSize: Scalars['Int']; + personId: Scalars['ID']; +}; + + export type QueryGetTimelineThreadsFromCompanyIdArgs = { companyId: Scalars['ID']; page: Scalars['Int']; @@ -4239,12 +5749,12 @@ export type QueryGetTimelineThreadsFromPersonIdArgs = { export type QueryMessageArgs = { - filter: MessageFilterInput; + filter?: InputMaybe; }; export type QueryMessageChannelArgs = { - filter: MessageChannelFilterInput; + filter?: InputMaybe; }; @@ -4255,7 +5765,7 @@ export type QueryMessageChannelDuplicatesArgs = { export type QueryMessageChannelMessageAssociationArgs = { - filter: MessageChannelMessageAssociationFilterInput; + filter?: InputMaybe; }; @@ -4292,7 +5802,7 @@ export type QueryMessageDuplicatesArgs = { export type QueryMessageParticipantArgs = { - filter: MessageParticipantFilterInput; + filter?: InputMaybe; }; @@ -4313,7 +5823,7 @@ export type QueryMessageParticipantsArgs = { export type QueryMessageThreadArgs = { - filter: MessageThreadFilterInput; + filter?: InputMaybe; }; @@ -4354,7 +5864,7 @@ export type QueryOpportunitiesArgs = { export type QueryOpportunityArgs = { - filter: OpportunityFilterInput; + filter?: InputMaybe; }; @@ -4375,7 +5885,7 @@ export type QueryPeopleArgs = { export type QueryPersonArgs = { - filter: PersonFilterInput; + filter?: InputMaybe; }; @@ -4385,34 +5895,13 @@ export type QueryPersonDuplicatesArgs = { }; -export type QueryPipelineStepArgs = { - filter: PipelineStepFilterInput; -}; - - -export type QueryPipelineStepDuplicatesArgs = { - data?: InputMaybe; - id?: InputMaybe; -}; - - -export type QueryPipelineStepsArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - orderBy?: InputMaybe; -}; - - export type QueryValidatePasswordResetTokenArgs = { passwordResetToken: Scalars['String']; }; export type QueryViewArgs = { - filter: ViewFilterInput; + filter?: InputMaybe; }; @@ -4423,7 +5912,7 @@ export type QueryViewDuplicatesArgs = { export type QueryViewFieldArgs = { - filter: ViewFieldFilterInput; + filter?: InputMaybe; }; @@ -4444,7 +5933,7 @@ export type QueryViewFieldsArgs = { export type QueryViewFilterArgs = { - filter: ViewFilterFilterInput; + filter?: InputMaybe; }; @@ -4465,7 +5954,7 @@ export type QueryViewFiltersArgs = { export type QueryViewSortArgs = { - filter: ViewSortFilterInput; + filter?: InputMaybe; }; @@ -4496,7 +5985,7 @@ export type QueryViewsArgs = { export type QueryWebhookArgs = { - filter: WebhookFilterInput; + filter?: InputMaybe; }; @@ -4517,7 +6006,7 @@ export type QueryWebhooksArgs = { export type QueryWorkspaceMemberArgs = { - filter: WorkspaceMemberFilterInput; + filter?: InputMaybe; }; @@ -4536,18 +6025,8 @@ export type QueryWorkspaceMembersArgs = { orderBy?: InputMaybe; }; -export type RefreshToken = { - createdAt: Scalars['DateTime']; - expiresAt: Scalars['DateTime']; - id: Scalars['ID']; - updatedAt: Scalars['DateTime']; -}; - -export type RefreshTokenEdge = { - /** Cursor for this node. */ - cursor: Scalars['ConnectionCursor']; - /** The node containing the RefreshToken */ - node: RefreshToken; +export type RawJsonFilter = { + is?: InputMaybe; }; export type RelationConnection = { @@ -4555,10 +6034,24 @@ export type RelationConnection = { edges: Array; /** Paging information */ pageInfo: PageInfo; - /** Fetch total count of records */ - totalCount: Scalars['Int']; }; +export type RelationDefinition = { + direction: RelationDefinitionType; + sourceFieldMetadata: Field; + sourceObjectMetadata: Object; + targetFieldMetadata: Field; + targetObjectMetadata: Object; +}; + +/** Relation definition type */ +export enum RelationDefinitionType { + ManyToMany = 'MANY_TO_MANY', + ManyToOne = 'MANY_TO_ONE', + OneToMany = 'ONE_TO_MANY', + OneToOne = 'ONE_TO_ONE' +} + export type RelationDeleteResponse = { createdAt?: Maybe; fromFieldMetadataId?: Maybe; @@ -4577,10 +6070,35 @@ export enum RelationMetadataType { OneToOne = 'ONE_TO_ONE' } +export type RemoteServer = { + createdAt: Scalars['DateTime']; + foreignDataWrapperId: Scalars['ID']; + foreignDataWrapperOptions?: Maybe; + foreignDataWrapperType: Scalars['String']; + id: Scalars['ID']; + updatedAt: Scalars['DateTime']; +}; + +export type RemoteTable = { + name: Scalars['String']; + schema: Scalars['String']; + status: RemoteTableStatus; +}; + +/** Status of the table */ +export enum RemoteTableStatus { + NotSynced = 'NOT_SYNCED', + Synced = 'SYNCED' +} + export type Sentry = { dsn?: Maybe; }; +export type SessionEntity = { + url?: Maybe; +}; + /** Sort Directions */ export enum SortDirection { Asc = 'ASC', @@ -4619,6 +6137,42 @@ export type Telemetry = { enabled: Scalars['Boolean']; }; +export type TimelineCalendarEvent = { + conferenceLink: LinkMetadata; + conferenceSolution: Scalars['String']; + description: Scalars['String']; + endsAt: Scalars['DateTime']; + id: Scalars['ID']; + isCanceled: Scalars['Boolean']; + isFullDay: Scalars['Boolean']; + location: Scalars['String']; + participants: Array; + startsAt: Scalars['DateTime']; + title: Scalars['String']; + visibility: TimelineCalendarEventVisibility; +}; + +export type TimelineCalendarEventParticipant = { + avatarUrl: Scalars['String']; + displayName: Scalars['String']; + firstName: Scalars['String']; + handle: Scalars['String']; + lastName: Scalars['String']; + personId?: Maybe; + workspaceMemberId?: Maybe; +}; + +/** Visibility of the calendar event */ +export enum TimelineCalendarEventVisibility { + Metadata = 'METADATA', + ShareEverything = 'SHARE_EVERYTHING' +} + +export type TimelineCalendarEventsWithTotal = { + timelineCalendarEvents: Array; + totalNumberOfCalendarEvents: Scalars['Int']; +}; + export type TimelineThread = { firstParticipant: TimelineThreadParticipant; id: Scalars['ID']; @@ -4658,6 +6212,11 @@ export type UuidFilter = { neq?: InputMaybe; }; +export type UpdateBillingEntity = { + /** Boolean that confirms query was successful */ + success: Scalars['Boolean']; +}; + export type UpdateWorkspaceInput = { allowImpersonation?: InputMaybe; displayName?: InputMaybe; @@ -4671,6 +6230,7 @@ export type User = { createdAt: Scalars['DateTime']; defaultAvatarUrl?: Maybe; defaultWorkspace: Workspace; + defaultWorkspaceId: Scalars['String']; deletedAt?: Maybe; disabled?: Maybe; email: Scalars['String']; @@ -4684,6 +6244,7 @@ export type User = { supportUserHash?: Maybe; updatedAt: Scalars['DateTime']; workspaceMember?: Maybe; + workspaces: Array; }; export type UserEdge = { @@ -4697,6 +6258,17 @@ export type UserExists = { exists: Scalars['Boolean']; }; +export type UserWorkspace = { + createdAt: Scalars['DateTime']; + deletedAt?: Maybe; + id: Scalars['ID']; + updatedAt: Scalars['DateTime']; + user: User; + userId: Scalars['String']; + workspace?: Maybe; + workspaceId: Scalars['String']; +}; + export type ValidatePasswordResetToken = { email: Scalars['String']; id: Scalars['String']; @@ -4709,18 +6281,29 @@ export type Verify = { /** (System) Views */ export type View = { - createdAt: Scalars['DateTime']; + /** Creation date */ + createdAt?: Maybe; deletedAt?: Maybe; - id: Scalars['ID']; + /** View icon */ + icon?: Maybe; + /** Id */ + id?: Maybe; /** Describes if the view is in compact mode */ - isCompact: Scalars['Boolean']; + isCompact?: Maybe; + /** View Kanban column field */ + kanbanFieldMetadataId?: Maybe; + /** View key */ + key?: Maybe; /** View name */ - name: Scalars['String']; + name?: Maybe; /** View target object */ - objectMetadataId: Scalars['ID']; + objectMetadataId?: Maybe; + /** View position */ + position?: Maybe; /** View type */ - type: Scalars['String']; - updatedAt: Scalars['DateTime']; + type?: Maybe; + /** Update date */ + updatedAt?: Maybe; /** View Fields */ viewFields?: Maybe; /** View Filters */ @@ -4764,48 +6347,62 @@ export type ViewViewSortsArgs = { /** (System) Views */ export type ViewConnection = { - edges: Array; - pageInfo: PageInfo; + edges?: Maybe>; + pageInfo?: Maybe; /** Total number of records in the connection */ totalCount?: Maybe; }; /** (System) Views */ export type ViewCreateInput = { + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; + /** View icon */ + icon?: InputMaybe; + /** Id */ id?: InputMaybe; /** Describes if the view is in compact mode */ isCompact?: InputMaybe; + /** View Kanban column field */ + kanbanFieldMetadataId?: InputMaybe; + /** View key */ + key?: InputMaybe; /** View name */ name?: InputMaybe; /** View target object */ objectMetadataId: Scalars['ID']; + /** View position */ + position?: InputMaybe; /** View type */ type?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; }; /** (System) Views */ export type ViewEdge = { - cursor: Scalars['Cursor']; - node: View; + cursor?: Maybe; + node?: Maybe; }; /** (System) View Fields */ export type ViewField = { - createdAt: Scalars['DateTime']; + /** Creation date */ + createdAt?: Maybe; deletedAt?: Maybe; /** View Field target field */ - fieldMetadataId: Scalars['ID']; - id: Scalars['ID']; + fieldMetadataId?: Maybe; + /** Id */ + id?: Maybe; /** View Field visibility */ - isVisible: Scalars['Boolean']; + isVisible?: Maybe; /** View Field position */ - position: Scalars['Float']; + position?: Maybe; /** View Field size */ - size: Scalars['Float']; - updatedAt: Scalars['DateTime']; + size?: Maybe; + /** Update date */ + updatedAt?: Maybe; /** View Field related view */ view?: Maybe; /** View Field related view id foreign key */ @@ -4814,18 +6411,20 @@ export type ViewField = { /** (System) View Fields */ export type ViewFieldConnection = { - edges: Array; - pageInfo: PageInfo; + edges?: Maybe>; + pageInfo?: Maybe; /** Total number of records in the connection */ totalCount?: Maybe; }; /** (System) View Fields */ export type ViewFieldCreateInput = { + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** View Field target field */ fieldMetadataId: Scalars['ID']; + /** Id */ id?: InputMaybe; /** View Field visibility */ isVisible?: InputMaybe; @@ -4833,6 +6432,7 @@ export type ViewFieldCreateInput = { position?: InputMaybe; /** View Field size */ size?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; /** View Field related view id foreign key */ viewId?: InputMaybe; @@ -4840,17 +6440,19 @@ export type ViewFieldCreateInput = { /** (System) View Fields */ export type ViewFieldEdge = { - cursor: Scalars['Cursor']; - node: ViewField; + cursor?: Maybe; + node?: Maybe; }; /** (System) View Fields */ export type ViewFieldFilterInput = { and?: InputMaybe>>; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** View Field target field */ fieldMetadataId?: InputMaybe; + /** Id */ id?: InputMaybe; /** View Field visibility */ isVisible?: InputMaybe; @@ -4860,6 +6462,7 @@ export type ViewFieldFilterInput = { position?: InputMaybe; /** View Field size */ size?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; /** View Field related view id foreign key */ viewId?: InputMaybe; @@ -4867,10 +6470,12 @@ export type ViewFieldFilterInput = { /** (System) View Fields */ export type ViewFieldOrderByInput = { + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** View Field target field */ fieldMetadataId?: InputMaybe; + /** Id */ id?: InputMaybe; /** View Field visibility */ isVisible?: InputMaybe; @@ -4878,6 +6483,7 @@ export type ViewFieldOrderByInput = { position?: InputMaybe; /** View Field size */ size?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; /** View Field related view id foreign key */ viewId?: InputMaybe; @@ -4885,10 +6491,12 @@ export type ViewFieldOrderByInput = { /** (System) View Fields */ export type ViewFieldUpdateInput = { + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** View Field target field */ fieldMetadataId?: InputMaybe; + /** Id */ id?: InputMaybe; /** View Field visibility */ isVisible?: InputMaybe; @@ -4896,6 +6504,7 @@ export type ViewFieldUpdateInput = { position?: InputMaybe; /** View Field size */ size?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; /** View Field related view id foreign key */ viewId?: InputMaybe; @@ -4903,18 +6512,21 @@ export type ViewFieldUpdateInput = { /** (System) View Filters */ export type ViewFilter = { - createdAt: Scalars['DateTime']; + /** Creation date */ + createdAt?: Maybe; deletedAt?: Maybe; /** View Filter Display Value */ - displayValue: Scalars['String']; + displayValue?: Maybe; /** View Filter target field */ - fieldMetadataId: Scalars['ID']; - id: Scalars['ID']; + fieldMetadataId?: Maybe; + /** Id */ + id?: Maybe; /** View Filter operand */ - operand: Scalars['String']; - updatedAt: Scalars['DateTime']; + operand?: Maybe; + /** Update date */ + updatedAt?: Maybe; /** View Filter value */ - value: Scalars['String']; + value?: Maybe; /** View Filter related view */ view?: Maybe; /** View Filter related view id foreign key */ @@ -4923,23 +6535,26 @@ export type ViewFilter = { /** (System) View Filters */ export type ViewFilterConnection = { - edges: Array; - pageInfo: PageInfo; + edges?: Maybe>; + pageInfo?: Maybe; /** Total number of records in the connection */ totalCount?: Maybe; }; /** (System) View Filters */ export type ViewFilterCreateInput = { + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** View Filter Display Value */ displayValue?: InputMaybe; /** View Filter target field */ fieldMetadataId: Scalars['ID']; + /** Id */ id?: InputMaybe; /** View Filter operand */ operand?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; /** View Filter value */ value?: InputMaybe; @@ -4949,24 +6564,27 @@ export type ViewFilterCreateInput = { /** (System) View Filters */ export type ViewFilterEdge = { - cursor: Scalars['Cursor']; - node: ViewFilter; + cursor?: Maybe; + node?: Maybe; }; /** (System) View Filters */ export type ViewFilterFilterInput = { and?: InputMaybe>>; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** View Filter Display Value */ displayValue?: InputMaybe; /** View Filter target field */ fieldMetadataId?: InputMaybe; + /** Id */ id?: InputMaybe; not?: InputMaybe; /** View Filter operand */ operand?: InputMaybe; or?: InputMaybe>>; + /** Update date */ updatedAt?: InputMaybe; /** View Filter value */ value?: InputMaybe; @@ -4977,33 +6595,47 @@ export type ViewFilterFilterInput = { /** (System) Views */ export type ViewFilterInput = { and?: InputMaybe>>; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; + /** View icon */ + icon?: InputMaybe; + /** Id */ id?: InputMaybe; /** Describes if the view is in compact mode */ isCompact?: InputMaybe; + /** View Kanban column field */ + kanbanFieldMetadataId?: InputMaybe; + /** View key */ + key?: InputMaybe; /** View name */ name?: InputMaybe; not?: InputMaybe; /** View target object */ objectMetadataId?: InputMaybe; or?: InputMaybe>>; + /** View position */ + position?: InputMaybe; /** View type */ type?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; }; /** (System) View Filters */ export type ViewFilterOrderByInput = { + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** View Filter Display Value */ displayValue?: InputMaybe; /** View Filter target field */ fieldMetadataId?: InputMaybe; + /** Id */ id?: InputMaybe; /** View Filter operand */ operand?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; /** View Filter value */ value?: InputMaybe; @@ -5013,15 +6645,18 @@ export type ViewFilterOrderByInput = { /** (System) View Filters */ export type ViewFilterUpdateInput = { + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** View Filter Display Value */ displayValue?: InputMaybe; /** View Filter target field */ fieldMetadataId?: InputMaybe; + /** Id */ id?: InputMaybe; /** View Filter operand */ operand?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; /** View Filter value */ value?: InputMaybe; @@ -5029,32 +6664,59 @@ export type ViewFilterUpdateInput = { viewId?: InputMaybe; }; +/** View key */ +export enum ViewKeyEnum { + /** Index */ + Index = 'INDEX' +} + +export type ViewKeyEnumFilter = { + eq?: InputMaybe; + in?: InputMaybe>>; + is?: InputMaybe; + neq?: InputMaybe; +}; + /** (System) Views */ export type ViewOrderByInput = { + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; + /** View icon */ + icon?: InputMaybe; + /** Id */ id?: InputMaybe; /** Describes if the view is in compact mode */ isCompact?: InputMaybe; + /** View Kanban column field */ + kanbanFieldMetadataId?: InputMaybe; + /** View key */ + key?: InputMaybe; /** View name */ name?: InputMaybe; /** View target object */ objectMetadataId?: InputMaybe; + /** View position */ + position?: InputMaybe; /** View type */ type?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; }; /** (System) View Sorts */ export type ViewSort = { - createdAt: Scalars['DateTime']; + /** Creation date */ + createdAt?: Maybe; deletedAt?: Maybe; /** View Sort direction */ - direction: Scalars['String']; + direction?: Maybe; /** View Sort target field */ - fieldMetadataId: Scalars['ID']; - id: Scalars['ID']; - updatedAt: Scalars['DateTime']; + fieldMetadataId?: Maybe; + /** Id */ + id?: Maybe; + /** Update date */ + updatedAt?: Maybe; /** View Sort related view */ view?: Maybe; /** View Sort related view id foreign key */ @@ -5063,21 +6725,24 @@ export type ViewSort = { /** (System) View Sorts */ export type ViewSortConnection = { - edges: Array; - pageInfo: PageInfo; + edges?: Maybe>; + pageInfo?: Maybe; /** Total number of records in the connection */ totalCount?: Maybe; }; /** (System) View Sorts */ export type ViewSortCreateInput = { + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** View Sort direction */ direction?: InputMaybe; /** View Sort target field */ fieldMetadataId: Scalars['ID']; + /** Id */ id?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; /** View Sort related view id foreign key */ viewId?: InputMaybe; @@ -5085,22 +6750,25 @@ export type ViewSortCreateInput = { /** (System) View Sorts */ export type ViewSortEdge = { - cursor: Scalars['Cursor']; - node: ViewSort; + cursor?: Maybe; + node?: Maybe; }; /** (System) View Sorts */ export type ViewSortFilterInput = { and?: InputMaybe>>; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** View Sort direction */ direction?: InputMaybe; /** View Sort target field */ fieldMetadataId?: InputMaybe; + /** Id */ id?: InputMaybe; not?: InputMaybe; or?: InputMaybe>>; + /** Update date */ updatedAt?: InputMaybe; /** View Sort related view id foreign key */ viewId?: InputMaybe; @@ -5108,13 +6776,16 @@ export type ViewSortFilterInput = { /** (System) View Sorts */ export type ViewSortOrderByInput = { + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** View Sort direction */ direction?: InputMaybe; /** View Sort target field */ fieldMetadataId?: InputMaybe; + /** Id */ id?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; /** View Sort related view id foreign key */ viewId?: InputMaybe; @@ -5122,13 +6793,16 @@ export type ViewSortOrderByInput = { /** (System) View Sorts */ export type ViewSortUpdateInput = { + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; /** View Sort direction */ direction?: InputMaybe; /** View Sort target field */ fieldMetadataId?: InputMaybe; + /** Id */ id?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; /** View Sort related view id foreign key */ viewId?: InputMaybe; @@ -5136,63 +6810,82 @@ export type ViewSortUpdateInput = { /** (System) Views */ export type ViewUpdateInput = { + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; + /** View icon */ + icon?: InputMaybe; + /** Id */ id?: InputMaybe; /** Describes if the view is in compact mode */ isCompact?: InputMaybe; + /** View Kanban column field */ + kanbanFieldMetadataId?: InputMaybe; + /** View key */ + key?: InputMaybe; /** View name */ name?: InputMaybe; /** View target object */ objectMetadataId?: InputMaybe; + /** View position */ + position?: InputMaybe; /** View type */ type?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; }; /** A webhook */ export type Webhook = { - createdAt: Scalars['DateTime']; + /** Creation date */ + createdAt?: Maybe; deletedAt?: Maybe; - id: Scalars['ID']; + /** Id */ + id?: Maybe; /** Webhook operation */ - operation: Scalars['String']; + operation?: Maybe; /** Webhook target url */ - targetUrl: Scalars['String']; - updatedAt: Scalars['DateTime']; + targetUrl?: Maybe; + /** Update date */ + updatedAt?: Maybe; }; /** A webhook */ export type WebhookConnection = { - edges: Array; - pageInfo: PageInfo; + edges?: Maybe>; + pageInfo?: Maybe; /** Total number of records in the connection */ totalCount?: Maybe; }; /** A webhook */ export type WebhookCreateInput = { + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; + /** Id */ id?: InputMaybe; /** Webhook operation */ operation?: InputMaybe; /** Webhook target url */ targetUrl?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; }; /** A webhook */ export type WebhookEdge = { - cursor: Scalars['Cursor']; - node: Webhook; + cursor?: Maybe; + node?: Maybe; }; /** A webhook */ export type WebhookFilterInput = { and?: InputMaybe>>; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; + /** Id */ id?: InputMaybe; not?: InputMaybe; /** Webhook operation */ @@ -5200,37 +6893,47 @@ export type WebhookFilterInput = { or?: InputMaybe>>; /** Webhook target url */ targetUrl?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; }; /** A webhook */ export type WebhookOrderByInput = { + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; + /** Id */ id?: InputMaybe; /** Webhook operation */ operation?: InputMaybe; /** Webhook target url */ targetUrl?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; }; /** A webhook */ export type WebhookUpdateInput = { + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; + /** Id */ id?: InputMaybe; /** Webhook operation */ operation?: InputMaybe; /** Webhook target url */ targetUrl?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; }; export type Workspace = { activationStatus: Scalars['String']; allowImpersonation: Scalars['Boolean']; + billingSubscriptions?: Maybe>; createdAt: Scalars['DateTime']; + currentBillingSubscription?: Maybe; + currentCacheVersion: Scalars['String']; deletedAt?: Maybe; displayName?: Maybe; domainName?: Maybe; @@ -5243,6 +6946,12 @@ export type Workspace = { }; +export type WorkspaceBillingSubscriptionsArgs = { + filter?: BillingSubscriptionFilter; + sorting?: Array; +}; + + export type WorkspaceFeatureFlagsArgs = { filter?: FeatureFlagFilter; sorting?: Array; @@ -5272,17 +6981,23 @@ export type WorkspaceMember = { /** Authored comments */ authoredComments?: Maybe; /** Workspace member avatar */ - avatarUrl: Scalars['String']; + avatarUrl?: Maybe; /** Blocklisted handles */ blocklist?: Maybe; + /** Calendar Event Participants */ + calendarEventParticipants?: Maybe; /** Preferred color scheme */ colorScheme: Scalars['String']; /** Connected accounts */ connectedAccounts?: Maybe; - createdAt: Scalars['DateTime']; + /** Creation date */ + createdAt?: Maybe; deletedAt?: Maybe; + /** Events linked to the workspace member */ + events?: Maybe; /** Favorites linked to the workspace member */ favorites?: Maybe; + /** Id */ id: Scalars['ID']; /** Preferred language */ locale: Scalars['String']; @@ -5290,11 +7005,12 @@ export type WorkspaceMember = { messageParticipants?: Maybe; /** Workspace member name */ name: FullName; - updatedAt: Scalars['DateTime']; + /** Update date */ + updatedAt?: Maybe; /** Related user email address */ - userEmail: Scalars['String']; + userEmail?: Maybe; /** Associated User Id */ - userId: Scalars['ID']; + userId?: Maybe; }; @@ -5364,6 +7080,17 @@ export type WorkspaceMemberBlocklistArgs = { }; +/** A workspace member */ +export type WorkspaceMemberCalendarEventParticipantsArgs = { + after?: InputMaybe; + before?: InputMaybe; + filter?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + orderBy?: InputMaybe; +}; + + /** A workspace member */ export type WorkspaceMemberConnectedAccountsArgs = { after?: InputMaybe; @@ -5375,6 +7102,17 @@ export type WorkspaceMemberConnectedAccountsArgs = { }; +/** A workspace member */ +export type WorkspaceMemberEventsArgs = { + after?: InputMaybe; + before?: InputMaybe; + filter?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + orderBy?: InputMaybe; +}; + + /** A workspace member */ export type WorkspaceMemberFavoritesArgs = { after?: InputMaybe; @@ -5398,8 +7136,8 @@ export type WorkspaceMemberMessageParticipantsArgs = { /** A workspace member */ export type WorkspaceMemberConnection = { - edges: Array; - pageInfo: PageInfo; + edges?: Maybe>; + pageInfo?: Maybe; /** Total number of records in the connection */ totalCount?: Maybe; }; @@ -5410,13 +7148,16 @@ export type WorkspaceMemberCreateInput = { avatarUrl?: InputMaybe; /** Preferred color scheme */ colorScheme?: InputMaybe; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; + /** Id */ id?: InputMaybe; /** Preferred language */ locale?: InputMaybe; /** Workspace member name */ name?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; /** Related user email address */ userEmail?: InputMaybe; @@ -5426,8 +7167,8 @@ export type WorkspaceMemberCreateInput = { /** A workspace member */ export type WorkspaceMemberEdge = { - cursor: Scalars['Cursor']; - node: WorkspaceMember; + cursor?: Maybe; + node?: Maybe; }; /** A workspace member */ @@ -5437,8 +7178,10 @@ export type WorkspaceMemberFilterInput = { avatarUrl?: InputMaybe; /** Preferred color scheme */ colorScheme?: InputMaybe; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; + /** Id */ id?: InputMaybe; /** Preferred language */ locale?: InputMaybe; @@ -5446,6 +7189,7 @@ export type WorkspaceMemberFilterInput = { name?: InputMaybe; not?: InputMaybe; or?: InputMaybe>>; + /** Update date */ updatedAt?: InputMaybe; /** Related user email address */ userEmail?: InputMaybe; @@ -5459,13 +7203,16 @@ export type WorkspaceMemberOrderByInput = { avatarUrl?: InputMaybe; /** Preferred color scheme */ colorScheme?: InputMaybe; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; + /** Id */ id?: InputMaybe; /** Preferred language */ locale?: InputMaybe; /** Workspace member name */ name?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; /** Related user email address */ userEmail?: InputMaybe; @@ -5479,13 +7226,16 @@ export type WorkspaceMemberUpdateInput = { avatarUrl?: InputMaybe; /** Preferred color scheme */ colorScheme?: InputMaybe; + /** Creation date */ createdAt?: InputMaybe; deletedAt?: InputMaybe; + /** Id */ id?: InputMaybe; /** Preferred language */ locale?: InputMaybe; /** Workspace member name */ name?: InputMaybe; + /** Update date */ updatedAt?: InputMaybe; /** Related user email address */ userEmail?: InputMaybe; @@ -5507,6 +7257,7 @@ export type Field = { label: Scalars['String']; name: Scalars['String']; options?: Maybe; + relationDefinition?: Maybe; toRelationMetadata?: Maybe; type: FieldMetadataType; updatedAt: Scalars['DateTime']; @@ -5538,6 +7289,7 @@ export type Object = { imageIdentifierFieldMetadataId?: Maybe; isActive: Scalars['Boolean']; isCustom: Scalars['Boolean']; + isRemote: Scalars['Boolean']; isSystem: Scalars['Boolean']; labelIdentifierFieldMetadataId?: Maybe; labelPlural: Scalars['String']; @@ -5580,19 +7332,133 @@ export type RelationEdge = { node: Relation; }; +export type ExchangeAuthorizationCodeMutationVariables = Exact<{ + authorizationCode: Scalars['String']; + codeVerifier?: InputMaybe; + clientSecret?: InputMaybe; +}>; + + +export type ExchangeAuthorizationCodeMutation = { exchangeAuthorizationCode: { loginToken: { token: string, expiresAt: any }, accessToken: { token: string, expiresAt: any }, refreshToken: { token: string, expiresAt: any } } }; + +export type CreateOneCompanyMutationVariables = Exact<{ + input: CompanyCreateInput; +}>; + + +export type CreateOneCompanyMutation = { createCompany?: { id?: string | null } | null }; + export type FindCompanyQueryVariables = Exact<{ filter: CompanyFilterInput; }>; -export type FindCompanyQuery = { companies: { edges: Array<{ node: { linkedinLink?: { url?: string | null, label?: string | null } | null } }> } }; +export type FindCompanyQuery = { companies?: { edges?: Array<{ node?: { name?: string | null, linkedinLink?: { url?: string | null, label?: string | null } | null } | null }> | null } | null }; + +export type CreateOnePersonMutationVariables = Exact<{ + input: PersonCreateInput; +}>; +export type CreateOnePersonMutation = { createPerson?: { id?: string | null } | null }; + +export type FindPersonQueryVariables = Exact<{ + filter: PersonFilterInput; +}>; + + +export type FindPersonQuery = { people?: { edges?: Array<{ node?: { name?: { firstName: string, lastName: string } | null, linkedinLink?: { url?: string | null, label?: string | null } | null } | null }> | null } | null }; + + +export const ExchangeAuthorizationCodeDocument = gql` + mutation ExchangeAuthorizationCode($authorizationCode: String!, $codeVerifier: String, $clientSecret: String) { + exchangeAuthorizationCode( + authorizationCode: $authorizationCode + codeVerifier: $codeVerifier + clientSecret: $clientSecret + ) { + loginToken { + token + expiresAt + } + accessToken { + token + expiresAt + } + refreshToken { + token + expiresAt + } + } +} + `; +export type ExchangeAuthorizationCodeMutationFn = Apollo.MutationFunction; + +/** + * __useExchangeAuthorizationCodeMutation__ + * + * To run a mutation, you first call `useExchangeAuthorizationCodeMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useExchangeAuthorizationCodeMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [exchangeAuthorizationCodeMutation, { data, loading, error }] = useExchangeAuthorizationCodeMutation({ + * variables: { + * authorizationCode: // value for 'authorizationCode' + * codeVerifier: // value for 'codeVerifier' + * clientSecret: // value for 'clientSecret' + * }, + * }); + */ +export function useExchangeAuthorizationCodeMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(ExchangeAuthorizationCodeDocument, options); + } +export type ExchangeAuthorizationCodeMutationHookResult = ReturnType; +export type ExchangeAuthorizationCodeMutationResult = Apollo.MutationResult; +export type ExchangeAuthorizationCodeMutationOptions = Apollo.BaseMutationOptions; +export const CreateOneCompanyDocument = gql` + mutation CreateOneCompany($input: CompanyCreateInput!) { + createCompany(data: $input) { + id + } +} + `; +export type CreateOneCompanyMutationFn = Apollo.MutationFunction; + +/** + * __useCreateOneCompanyMutation__ + * + * To run a mutation, you first call `useCreateOneCompanyMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useCreateOneCompanyMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [createOneCompanyMutation, { data, loading, error }] = useCreateOneCompanyMutation({ + * variables: { + * input: // value for 'input' + * }, + * }); + */ +export function useCreateOneCompanyMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(CreateOneCompanyDocument, options); + } +export type CreateOneCompanyMutationHookResult = ReturnType; +export type CreateOneCompanyMutationResult = Apollo.MutationResult; +export type CreateOneCompanyMutationOptions = Apollo.BaseMutationOptions; export const FindCompanyDocument = gql` query FindCompany($filter: CompanyFilterInput!) { companies(filter: $filter) { edges { node { + name linkedinLink { url label @@ -5629,4 +7495,83 @@ export function useFindCompanyLazyQuery(baseOptions?: Apollo.LazyQueryHookOption } export type FindCompanyQueryHookResult = ReturnType; export type FindCompanyLazyQueryHookResult = ReturnType; -export type FindCompanyQueryResult = Apollo.QueryResult; \ No newline at end of file +export type FindCompanyQueryResult = Apollo.QueryResult; +export const CreateOnePersonDocument = gql` + mutation CreateOnePerson($input: PersonCreateInput!) { + createPerson(data: $input) { + id + } +} + `; +export type CreateOnePersonMutationFn = Apollo.MutationFunction; + +/** + * __useCreateOnePersonMutation__ + * + * To run a mutation, you first call `useCreateOnePersonMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useCreateOnePersonMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [createOnePersonMutation, { data, loading, error }] = useCreateOnePersonMutation({ + * variables: { + * input: // value for 'input' + * }, + * }); + */ +export function useCreateOnePersonMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(CreateOnePersonDocument, options); + } +export type CreateOnePersonMutationHookResult = ReturnType; +export type CreateOnePersonMutationResult = Apollo.MutationResult; +export type CreateOnePersonMutationOptions = Apollo.BaseMutationOptions; +export const FindPersonDocument = gql` + query FindPerson($filter: PersonFilterInput!) { + people(filter: $filter) { + edges { + node { + name { + firstName + lastName + } + linkedinLink { + url + label + } + } + } + } +} + `; + +/** + * __useFindPersonQuery__ + * + * To run a query within a React component, call `useFindPersonQuery` and pass it any options that fit your needs. + * When your component renders, `useFindPersonQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useFindPersonQuery({ + * variables: { + * filter: // value for 'filter' + * }, + * }); + */ +export function useFindPersonQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(FindPersonDocument, options); + } +export function useFindPersonLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(FindPersonDocument, options); + } +export type FindPersonQueryHookResult = ReturnType; +export type FindPersonLazyQueryHookResult = ReturnType; +export type FindPersonQueryResult = Apollo.QueryResult; \ No newline at end of file diff --git a/packages/twenty-chrome-extension/src/graphql/auth/mutations.ts b/packages/twenty-chrome-extension/src/graphql/auth/mutations.ts new file mode 100644 index 0000000000..34fb9a3f13 --- /dev/null +++ b/packages/twenty-chrome-extension/src/graphql/auth/mutations.ts @@ -0,0 +1,28 @@ +import { gql } from '@apollo/client'; + +export const EXCHANGE_AUTHORIZATION_CODE = gql` + mutation ExchangeAuthorizationCode( + $authorizationCode: String! + $codeVerifier: String + $clientSecret: String + ) { + exchangeAuthorizationCode( + authorizationCode: $authorizationCode + codeVerifier: $codeVerifier + clientSecret: $clientSecret + ) { + loginToken { + token + expiresAt + } + accessToken { + token + expiresAt + } + refreshToken { + token + expiresAt + } + } + } +`; diff --git a/packages/twenty-chrome-extension/src/graphql/auth/queries.ts b/packages/twenty-chrome-extension/src/graphql/auth/queries.ts new file mode 100644 index 0000000000..fe9d1f8c13 --- /dev/null +++ b/packages/twenty-chrome-extension/src/graphql/auth/queries.ts @@ -0,0 +1,20 @@ +// import { gql } from '@apollo/client'; + +// export const RENEW_TOKEN = gql` +// query RenewToken($appToken: String!) { +// renewToken(appToken: $appToken) { +// loginToken { +// token +// expiresAt +// } +// accessToken { +// token +// expiresAt +// } +// refreshToken { +// token +// expiresAt +// } +// } +// } +// `; diff --git a/packages/twenty-chrome-extension/src/manifest.ts b/packages/twenty-chrome-extension/src/manifest.ts index dd3896ba78..ed926ddd71 100644 --- a/packages/twenty-chrome-extension/src/manifest.ts +++ b/packages/twenty-chrome-extension/src/manifest.ts @@ -2,6 +2,15 @@ import { defineManifest } from '@crxjs/vite-plugin'; import packageData from '../package.json'; +const host_permissions = + process.env.VITE_MODE === 'development' + ? ['https://www.linkedin.com/*', 'http://localhost:3001/*'] + : ['https://www.linkedin.com/*']; +const external_sites = + process.env.VITE_MODE === 'development' + ? [`https://app.twenty.com/*`, `http://localhost:3001/*`] + : [`https://app.twenty.com/*`]; + export default defineManifest({ manifest_version: 3, name: 'Twenty', @@ -32,11 +41,18 @@ export default defineManifest({ }, ], - permissions: ['activeTab', 'storage'], + web_accessible_resources: [ + { + resources: ['options.html'], + matches: ['https://www.linkedin.com/*'], + }, + ], - host_permissions: ['https://www.linkedin.com/*'], + permissions: ['activeTab', 'storage', 'identity'], + + host_permissions: host_permissions, externally_connectable: { - matches: [`https://app.twenty.com/*`, `http://localhost:3001/*`], + matches: external_sites, }, }); diff --git a/packages/twenty-chrome-extension/src/options/Options.tsx b/packages/twenty-chrome-extension/src/options/Options.tsx index c0bace7c6c..112caec5bb 100644 --- a/packages/twenty-chrome-extension/src/options/Options.tsx +++ b/packages/twenty-chrome-extension/src/options/Options.tsx @@ -1,21 +1,123 @@ +import { useEffect, useState } from 'react'; import styled from '@emotion/styled'; -import { ApiKeyForm } from '@/api-key/components/ApiKeyForm'; +import { Loader } from '@/ui/display/loader/components/Loader'; +import { MainButton } from '@/ui/input/button/MainButton'; +import { TextInput } from '@/ui/input/components/TextInput'; -const StyledContainer = styled.div` +const StyledWrapper = styled.div` align-items: center; background: ${({ theme }) => theme.background.noisy}; display: flex; - flex-direction: column; height: 100vh; justify-content: center; `; +const StyledContainer = styled.div` + background: ${({ theme }) => theme.background.primary}; + width: 400px; + height: 350px; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + gap: ${({ theme }) => theme.spacing(2)}; +`; + +const StyledActionContainer = styled.div` + align-items: center; + display: flex; + flex-direction: column; + gap: 10px; + justify-content: center; + width: 300px; +`; + +const StyledLabel = styled.span` + color: ${({ theme }) => theme.font.color.primary}; + font-size: ${({ theme }) => theme.font.size.md}; + font-weight: ${({ theme }) => theme.font.weight.semiBold}; + margin-bottom: ${({ theme }) => theme.spacing(1)}; + text-transform: uppercase; +`; + const Options = () => { + const [isAuthenticating, setIsAuthenticating] = useState(false); + const [isAuthenticated, setIsAuthenticated] = useState(false); + const [error, setError] = useState(''); + const [serverBaseUrl, setServerBaseUrl] = useState( + import.meta.env.VITE_SERVER_BASE_URL, + ); + const authenticate = () => { + setIsAuthenticating(true); + setError(''); + chrome.runtime.sendMessage({ action: 'CONNECT' }, ({ status, message }) => { + if (status === true) { + setIsAuthenticated(true); + setIsAuthenticating(false); + chrome.storage.local.set({ isAuthenticated: true }); + } else { + setError(message); + setIsAuthenticating(false); + } + }); + }; + + useEffect(() => { + const getState = async () => { + const store = await chrome.storage.local.get(); + if (store.serverBaseUrl !== '') { + setServerBaseUrl(store.serverBaseUrl); + } else { + setServerBaseUrl(import.meta.env.VITE_SERVER_BASE_URL); + } + + if (store.isAuthenticated === true) setIsAuthenticated(true); + }; + void getState(); + }, []); + + const handleBaseUrlChange = (value: string) => { + setServerBaseUrl(value); + setError(''); + chrome.storage.local.set({ serverBaseUrl: value }); + }; + return ( - - - + + + twenty-logo + + + {isAuthenticating ? ( + + ) : isAuthenticated ? ( + Connected! + ) : ( + <> + authenticate()} + fullWidth + /> + window.open(`${serverBaseUrl}`, '_blank')} + fullWidth + /> + + )} + + + ); }; diff --git a/packages/twenty-chrome-extension/src/options/modules/api-key/components/ApiKeyForm.tsx b/packages/twenty-chrome-extension/src/options/modules/api-key/components/ApiKeyForm.tsx deleted file mode 100644 index 1d198756ef..0000000000 --- a/packages/twenty-chrome-extension/src/options/modules/api-key/components/ApiKeyForm.tsx +++ /dev/null @@ -1,184 +0,0 @@ -import { useEffect, useState } from 'react'; -import styled from '@emotion/styled'; - -import { H2Title } from '@/ui/display/typography/components/H2Title'; -import { Button } from '@/ui/input/button/Button'; -import { TextInput } from '@/ui/input/components/TextInput'; -import { Toggle } from '@/ui/input/components/Toggle'; -import { isDefined } from '~/utils/isDefined'; - -const StyledContainer = styled.div<{ isToggleOn: boolean }>` - width: 400px; - margin: 0 auto; - background-color: ${({ theme }) => theme.background.primary}; - padding: ${({ theme }) => theme.spacing(10)}; - overflow: hidden; - transition: height 0.3s ease; - - height: ${({ isToggleOn }) => (isToggleOn ? '450px' : '390px')}; - max-height: ${({ isToggleOn }) => (isToggleOn ? '450px' : '390px')}; -`; - -const StyledHeader = styled.header` - margin-bottom: ${({ theme }) => theme.spacing(8)}; - text-align: center; -`; - -const StyledImgLogo = styled.img` - &:hover { - cursor: pointer; - } -`; - -const StyledMain = styled.main` - margin-bottom: ${({ theme }) => theme.spacing(8)}; -`; - -const StyledFooter = styled.footer` - display: flex; -`; - -const StyledTitleContainer = styled.div` - flex: 0 0 80%; -`; - -const StyledToggleContainer = styled.div` - flex: 0 0 20%; - display: flex; - justify-content: flex-end; -`; - -const StyledSection = styled.div<{ showSection: boolean }>` - transition: - max-height 0.3s ease, - opacity 0.3s ease; - overflow: hidden; - max-height: ${({ showSection }) => (showSection ? '200px' : '0')}; -`; - -const StyledButtonHorizontalContainer = styled.div` - display: flex; - flex-direction: row; - gap: ${({ theme }) => theme.spacing(4)}; - width: 100%; -`; - -export const ApiKeyForm = () => { - const [apiKey, setApiKey] = useState(''); - const [route, setRoute] = useState(''); - const [showSection, setShowSection] = useState(false); - - useEffect(() => { - const getState = async () => { - const localStorage = await chrome.storage.local.get(); - - if (isDefined(localStorage.apiKey)) { - setApiKey(localStorage.apiKey); - } - - if (isDefined(localStorage.serverBaseUrl)) { - setShowSection(true); - setRoute(localStorage.serverBaseUrl); - } - }; - - void getState(); - }, []); - - useEffect(() => { - if (import.meta.env.VITE_SERVER_BASE_URL !== route) { - chrome.storage.local.set({ serverBaseUrl: route }); - } else { - chrome.storage.local.set({ serverBaseUrl: '' }); - } - }, [route]); - - const handleValidateKey = () => { - chrome.storage.local.set({ apiKey }); - - window.close(); - }; - - const handleGenerateClick = () => { - window.open(`${import.meta.env.VITE_FRONT_BASE_URL}/settings/developers`); - }; - - const handleGoToTwenty = () => { - window.open(`${import.meta.env.VITE_FRONT_BASE_URL}`); - }; - - const handleToggle = () => { - setShowSection(!showSection); - }; - - return ( - - - - - - - - -