docs/api-reference/integrations/integration-schema.mdx
Integration is third party service used by Novu to send notification for a specific channel. For example, sengrid is a email integration and twilio is a sms integration. Read more about integrations on integrations concept page. Integration APIs don't return credentials with secret key based authorization method, only integration metadata details are returned in response.
<ResponseField name="id" type="string"> The unique identifier of the integration record in the database. This is automatically generated. </ResponseField> <ResponseField name="environmentId" type="string"> The unique identifier for the environment associated with this integration. This links to the Environment collection. </ResponseField> <ResponseField name="organizationId" type="string"> The unique identifier for the organization that owns this integration. This links to the Organization collection. </ResponseField> <ResponseField name="name" type="string"> The name of the integration, which is used to identify it in the user interface. </ResponseField> <ResponseField name="identifier" type="string"> A unique string identifier for the integration, often used for API calls or internal references. </ResponseField> <ResponseField name="providerId" type="string"> The identifier for the provider of the integration (e.g., "mailgun", "twilio"). </ResponseField> <ResponseField name="channel" type="IntegrationResponseDtoChannel"> The channel type for the integration, which defines how it communicates (e.g., email, SMS). </ResponseField> <ResponseField name="credentials" type="CredentialsDto"> The credentials required for the integration to function, including API keys and other sensitive information. </ResponseField> <ResponseField name="configurations" type="ConfigurationsDto"> The configurations required for enabling the additional configurations of the integration. </ResponseField> <ResponseField name="active" type="boolean"> Indicates whether the integration is currently active. An active integration will process events and messages. </ResponseField> <ResponseField name="deleted" type="boolean"> Indicates whether the integration has been marked as deleted (soft delete). </ResponseField> <ResponseField name="deletedAt" type="string"> The timestamp indicating when the integration was deleted. This is set when the integration is soft deleted. </ResponseField> <ResponseField name="deletedBy" type="string"> The identifier of the user who performed the deletion of this integration. Useful for audit trails. </ResponseField> <ResponseField name="primary" type="boolean"> Indicates whether this integration is marked as primary. A primary integration is often the default choice for processing. </ResponseField> <ResponseField name="conditions" type="StepFilterDto[]"> An array of conditions associated with the integration that may influence its behavior or processing logic. </ResponseField>Each integration has a set of credentials that are used to authenticate with the third party service. Checkout the provider documentation for more details on what credentials are required for each integration.
<ResponseField name="apiKey" type="string" /> <ResponseField name="user" type="string" /> <ResponseField name="secretKey" type="string" /> <ResponseField name="domain" type="string" /> <ResponseField name="password" type="string" /> <ResponseField name="host" type="string" /> <ResponseField name="port" type="string" /> <ResponseField name="secure" type="boolean" /> <ResponseField name="region" type="string" /> <ResponseField name="accountSid" type="string" /> <ResponseField name="messageProfileId" type="string" /> <ResponseField name="token" type="string" /> <ResponseField name="from" type="string" /> <ResponseField name="senderName" type="string" /> <ResponseField name="projectName" type="string" /> <ResponseField name="applicationId" type="string" /> <ResponseField name="clientId" type="string" /> <ResponseField name="requireTls" type="boolean" /> <ResponseField name="ignoreTls" type="boolean" /> <ResponseField name="tlsOptions" type="TlsOptions" /> <ResponseField name="baseUrl" type="string" /> <ResponseField name="webhookUrl" type="string" /> <ResponseField name="redirectUrl" type="string" /> <ResponseField name="hmac" type="boolean" /> <ResponseField name="serviceAccount" type="string" /> <ResponseField name="ipPoolName" type="string" /> <ResponseField name="apiKeyRequestHeader" type="string" /> <ResponseField name="secretKeyRequestHeader" type="string" /> <ResponseField name="idPath" type="string" /> <ResponseField name="datePath" type="string" /> <ResponseField name="apiToken" type="string" /> <ResponseField name="authenticateByToken" type="boolean" /> <ResponseField name="authenticationTokenKey" type="string" /> <ResponseField name="instanceId" type="string" /> <ResponseField name="alertUid" type="string" /> <ResponseField name="title" type="string" /> <ResponseField name="imageUrl" type="string" /> <ResponseField name="state" type="string" /> <ResponseField name="externalLink" type="string" /> <ResponseField name="channelId" type="string" /> <ResponseField name="phoneNumberIdentification" type="string" /> <ResponseField name="accessKey" type="string" /> <ResponseField name="appSid" type="string" /> <ResponseField name="senderId" type="string" /> <ResponseField name="tenantId" type="string" /> <ResponseField name="appIOBaseUrl" type="string" />ChannelTypeEnum is used to specify the type of channel that the integration is used for. For example, if the integration is used for email, the channel type will be email.
ChannelTypeEnum {
IN_APP = "in_app",
EMAIL = "email",
SMS = "sms",
CHAT = "chat",
PUSH = "push"
}