Skip to content

integrations/form/cognidesk/dist/runtime

Interfaces

FormChannelEvent

Properties

channel
channel: {
  capabilities: {
     async: boolean;
     attachments: boolean;
     audioInput: boolean;
     audioOutput: boolean;
     buttons: boolean;
     deliveryReceipts: boolean;
     files: boolean;
     html: boolean;
     images: boolean;
     markdown: boolean;
     privateReplies: boolean;
     publicReplies: boolean;
     quickReplies: boolean;
     readReceipts: boolean;
     realtime: boolean;
     richText: boolean;
     supportsHumanTransfer: boolean;
     templates: boolean;
     threaded: boolean;
     typingIndicator: boolean;
     voice: boolean;
     widgets: boolean;
  };
  channelId: string;
  externalConversationId?: string;
  externalMessageId?: string;
  externalThreadId?: string;
  externalUserId?: string;
  kind: string;
  locale?: string;
  metadata?: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
  provider?: string;
  timezone?: string;
};
capabilities
capabilities: {
  async: boolean;
  attachments: boolean;
  audioInput: boolean;
  audioOutput: boolean;
  buttons: boolean;
  deliveryReceipts: boolean;
  files: boolean;
  html: boolean;
  images: boolean;
  markdown: boolean;
  privateReplies: boolean;
  publicReplies: boolean;
  quickReplies: boolean;
  readReceipts: boolean;
  realtime: boolean;
  richText: boolean;
  supportsHumanTransfer: boolean;
  templates: boolean;
  threaded: boolean;
  typingIndicator: boolean;
  voice: boolean;
  widgets: boolean;
};
capabilities.async
async: boolean;
capabilities.attachments
attachments: boolean;
capabilities.audioInput
audioInput: boolean;
capabilities.audioOutput
audioOutput: boolean;
capabilities.buttons
buttons: boolean;
capabilities.deliveryReceipts
deliveryReceipts: boolean;
capabilities.files
files: boolean;
capabilities.html
html: boolean;
capabilities.images
images: boolean;
capabilities.markdown
markdown: boolean;
capabilities.privateReplies
privateReplies: boolean;
capabilities.publicReplies
publicReplies: boolean;
capabilities.quickReplies
quickReplies: boolean;
capabilities.readReceipts
readReceipts: boolean;
capabilities.realtime
realtime: boolean;
capabilities.richText
richText: boolean;
capabilities.supportsHumanTransfer
supportsHumanTransfer: boolean;
capabilities.templates
templates: boolean;
capabilities.threaded
threaded: boolean;
capabilities.typingIndicator
typingIndicator: boolean;
capabilities.voice
voice: boolean;
capabilities.widgets
widgets: boolean;
channelId
channelId: string;
externalConversationId?
optional externalConversationId?: string;
externalMessageId?
optional externalMessageId?: string;
externalThreadId?
optional externalThreadId?: string;
externalUserId?
optional externalUserId?: string;
kind
kind: string;
locale?
optional locale?: string;
metadata?
optional metadata?: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
provider?
optional provider?: string;
timezone?
optional timezone?: string;
id
id: string;
intake
intake: FormIntakeRecord;
occurredAt
occurredAt: string;
type
type: "channel.form.submission";

FormDefinition

Extends

Properties

allowUnknownFields
allowUnknownFields: boolean;
Overrides

FormDefinitionInput.allowUnknownFields

fields
fields: FormFieldDefinition[];
Inherited from

FormDefinitionInput.fields

id
id: string;
Inherited from

FormDefinitionInput.id

metadata?
optional metadata?: FormsProviderExtensionFields;
Inherited from

FormDefinitionInput.metadata

name
name: string;
Overrides

FormDefinitionInput.name

version?
optional version?: string;
Inherited from

FormDefinitionInput.version


FormDefinitionInput

Extended by

Properties

allowUnknownFields?
optional allowUnknownFields?: boolean;
fields
fields: FormFieldDefinition[];
id
id: string;
metadata?
optional metadata?: FormsProviderExtensionFields;
name?
optional name?: string;
version?
optional version?: string;

FormFieldDefinition

Properties

id
id: string;
label?
optional label?: string;
metadata?
optional metadata?: FormsProviderExtensionFields;
options?
optional options?: FormFieldOption[];
required?
optional required?: boolean;
type
type: FormFieldType;

FormFieldOption

Properties

label?
optional label?: string;
metadata?
optional metadata?: FormsProviderExtensionFields;
value
value: string;

FormIntakeRecord

Properties

customer?
optional customer?: FormsJsonObject;
fields
fields: FormsJsonObject;
formId
formId: string;
formName
formName: string;
id
id: string;
kind
kind: "formSubmission";
metadata?
optional metadata?: FormsProviderExtensionFields;
source?
optional source?: FormsJsonObject;
submittedAt
submittedAt: string;

FormsCredentialStatusInput

Properties

registryConfigured?
optional registryConfigured?: boolean;
webhookSecretConfigured?
optional webhookSecretConfigured?: boolean;

FormsJsonObject

Extended by

Indexable

[key: string]: FormsProviderExtensionValue

FormsProviderExtensionFields

Extends

Indexable

[key: string]: FormsProviderExtensionValue

FormsProviderResponse

Extends

Indexable

[key: string]: FormsProviderExtensionValue

FormSubmissionInput

Properties

customer?
optional customer?: FormsJsonObject;
fields
fields: FormsJsonObject;
formId
formId: string;
metadata?
optional metadata?: FormsProviderExtensionFields;
source?
optional source?: FormsJsonObject;
submissionId?
optional submissionId?: string;
submittedAt?
optional submittedAt?: string;

FormValidationError

Properties

code
code:
  | "unknown-field"
  | "missing-required"
  | "invalid-type"
  | "invalid-option";
fieldId
fieldId: string;
message
message: string;

ParseFormWebhookOptions

Properties

forms?
optional forms?: FormDefinition[];
rawBody?
optional rawBody?: string;
requireSignature?
optional requireSignature?: boolean;
secret?
optional secret?: string;
signatureHeader?
optional signatureHeader?: string;

Type Aliases

FormFieldType

type FormFieldType =
  | "text"
  | "email"
  | "number"
  | "boolean"
  | "select"
  | "multiselect"
  | "date"
  | "file"
  | "object";

FormsJsonPrimitive

type FormsJsonPrimitive = string | number | boolean | null;

FormsJsonValue

type FormsJsonValue =
  | FormsJsonPrimitive
  | FormsJsonObject
  | readonly FormsJsonValue[];

FormsProviderExtensionValue

type FormsProviderExtensionValue = FormsJsonValue | object | undefined;

FormsProviderPayload

type FormsProviderPayload = FormsJsonObject | object;

FormsProviderQuery

type FormsProviderQuery = Record<string, FormsProviderExtensionValue>;

FormValidationResult

type FormValidationResult =
  | {
  errors: [];
  submission: FormSubmissionInput;
  valid: true;
}
  | {
  errors: FormValidationError[];
  submission: FormSubmissionInput;
  valid: false;
};

Functions

defineForm()

function defineForm(input): FormDefinition;

Parameters

Parameter Type
input FormDefinitionInput

Returns

FormDefinition


formsCredentialStatuses()

function formsCredentialStatuses(input): {
  expiresAt?: string;
  message?: string;
  providerPackageId?: string;
  requirementId: string;
  scopes?: string[];
  state:   | "required"
     | "configured"
     | "permission-blocked"
     | "not-required"
     | "missing"
     | "expired"
     | "insufficient-scope"
     | "unavailable";
}[];

Parameters

Parameter Type
input FormsCredentialStatusInput

Returns

{ expiresAt?: string; message?: string; providerPackageId?: string; requirementId: string; scopes?: string[]; state: | "required" | "configured" | "permission-blocked" | "not-required" | "missing" | "expired" | "insufficient-scope" | "unavailable"; }[]


normalizeFormSubmission()

function normalizeFormSubmission(form, submission): FormIntakeRecord;

Parameters

Parameter Type
form FormDefinition
submission FormSubmissionInput

Returns

FormIntakeRecord


normalizeFormSubmissionEvent()

function normalizeFormSubmissionEvent(form, submission): FormChannelEvent;

Parameters

Parameter Type
form FormDefinition
submission FormSubmissionInput

Returns

FormChannelEvent


parseFormWebhook()

function parseFormWebhook(request, options?): Promise<FormSubmissionInput>;

Parameters

Parameter Type
request Request
options? ParseFormWebhookOptions

Returns

Promise\<FormSubmissionInput>


validateFormSubmission()

function validateFormSubmission(form, submission): FormValidationResult;

Parameters

Parameter Type
form FormDefinition
submission FormSubmissionInput

Returns

FormValidationResult


validateFormWebhookSignature()

function validateFormWebhookSignature(input): boolean;

Parameters

Parameter Type
input { rawBody: string; secret: string; signature: string; }
input.rawBody string
input.secret string
input.signature string

Returns

boolean