Skip to content

SDK API Reference / EngageSDK

Class: EngageSDK

Engage operations API

Methods

attachWebDomainToWorkspace()

attachWebDomainToWorkspace(workspaceNameOrId, domainNameOrId): Promise<{ changed: boolean; workspace: WorkspaceInfo; }>

Attach a Web Domain to a workspace without discarding unrelated workspace configuration.

Parameters

workspaceNameOrId

string

domainNameOrId

string

Returns

Promise<{ changed: boolean; workspace: WorkspaceInfo; }>


createAlwaysOnCampaign()

createAlwaysOnCampaign(workspaceId, input): Promise<AlwaysOnCampaignInfo>

Create an always-on campaign

Parameters

workspaceId

string

Workspace ID (required)

input

CreateAlwaysOnCampaignInput

Campaign creation parameters

Returns

Promise<AlwaysOnCampaignInfo>

Created campaign (normalized format)


createCampaign()

createCampaign(input): Promise<CampaignInfo>

Create a campaign

Parameters

input

CreateCampaignInput

Campaign creation parameters

Returns

Promise<CampaignInfo>

Created campaign (normalized format)


createInBrowserMessage()

createInBrowserMessage(workspaceId, input): Promise<InBrowserMessageInfo>

Create an in-browser message draft.

Parameters

workspaceId

string

input

CreateInBrowserMessageInput

Returns

Promise<InBrowserMessageInfo>


createLandingPage()

createLandingPage(workspaceId, input): Promise<LandingPageInfo>

Create a Landing Page draft.

Parameters

workspaceId

string

input

CreateLandingPageInput

Returns

Promise<LandingPageInfo>


createMediaDirectory()

createMediaDirectory(folderPath): Promise<MediaMkdirResult>

Create a directory in Engage DAM

Parameters

folderPath

string

Path of the new folder (e.g. "uploads/images")

Returns

Promise<MediaMkdirResult>


createTemplate()

createTemplate(input): Promise<EmailTemplateInfo>

Create an email template

Parameters

input

CreateTemplateInput

Template creation parameters

Returns

Promise<EmailTemplateInfo>

Created template (normalized format)


createWebDomain()

createWebDomain(input): Promise<WebDomainInfo>

Register an account-scoped Web Domain.

Parameters

input

CreateWebDomainInput

Returns

Promise<WebDomainInfo>


createWorkspace()

createWorkspace(input): Promise<WorkspaceInfo>

Create a workspace

Parameters

input

CreateWorkspaceInput

Workspace creation parameters

Returns

Promise<WorkspaceInfo>

Created workspace (normalized format)


deleteAlwaysOnCampaign()

deleteAlwaysOnCampaign(workspaceId, nameOrId): Promise<void>

Delete an always-on campaign

Parameters

workspaceId

string

Workspace ID (required)

nameOrId

string

Campaign name or UUID

Returns

Promise<void>


deleteCampaign()

deleteCampaign(nameOrId, workspaceId?): Promise<void>

Delete a campaign

Parameters

nameOrId

string

Campaign name or UUID

workspaceId?

string

Optional workspace ID to narrow search when using name

Returns

Promise<void>


deleteLandingPage()

deleteLandingPage(workspaceId, nameOrId): Promise<void>

Delete a draft Landing Page.

Parameters

workspaceId

string

nameOrId

string

Returns

Promise<void>


deleteMediaDirectory()

deleteMediaDirectory(folderPath): Promise<void>

Delete a directory from Engage DAM (must be empty)

Parameters

folderPath

string

Path of the folder to delete (e.g. "uploads/images")

Returns

Promise<void>


deleteMediaFile()

deleteMediaFile(filePath): Promise<void>

Delete a file from Engage DAM

Parameters

filePath

string

Path of the file to delete (e.g. "uploads/image.jpg")

Returns

Promise<void>


deleteTemplate()

deleteTemplate(nameOrId, workspaceId?): Promise<void>

Delete an email template

Parameters

nameOrId

string

Template name or UUID

workspaceId?

string

Optional workspace ID to narrow search when using name

Returns

Promise<void>


deleteWebDomain()

deleteWebDomain(nameOrId): Promise<void>

Delete a Web Domain by FQDN or UUID.

Parameters

nameOrId

string

Returns

Promise<void>


deleteWorkspace()

deleteWorkspace(nameOrId): Promise<void>

Delete a workspace

Parameters

nameOrId

string

Workspace name or UUID

Returns

Promise<void>


deployWebDomain()

deployWebDomain(nameOrId): Promise<WebDomainInfo>

Re-deploy a Web Domain, then return its current deployment state.

Parameters

nameOrId

string

Returns

Promise<WebDomainInfo>


detachWebDomainFromWorkspace()

detachWebDomainFromWorkspace(workspaceNameOrId, domainNameOrId): Promise<{ changed: boolean; workspace: WorkspaceInfo; }>

Detach a Web Domain from a workspace without discarding unrelated workspace configuration.

Parameters

workspaceNameOrId

string

domainNameOrId

string

Returns

Promise<{ changed: boolean; workspace: WorkspaceInfo; }>


duplicateAlwaysOnCampaign()

duplicateAlwaysOnCampaign(workspaceId, nameOrId, newName?): Promise<AlwaysOnCampaignInfo>

Duplicate an always-on campaign

Parameters

workspaceId

string

Workspace ID (required)

nameOrId

string

Campaign name or UUID

newName?

string

Optional name for the duplicated campaign

Returns

Promise<AlwaysOnCampaignInfo>

Duplicated campaign (normalized format)


duplicateCampaign()

duplicateCampaign(nameOrId, workspaceId?): Promise<CampaignInfo>

Duplicate a campaign

Creates a copy of an existing campaign with DRAFT status.

Parameters

nameOrId

string

Campaign name or UUID to duplicate

workspaceId?

string

Optional workspace ID to narrow search when using name

Returns

Promise<CampaignInfo>

Duplicated campaign (normalized format)


finishAlwaysOnCampaign()

finishAlwaysOnCampaign(workspaceId, nameOrId): Promise<void>

Parameters

workspaceId

string

nameOrId

string

Returns

Promise<void>


getAlwaysOnCampaign()

getAlwaysOnCampaign(workspaceId, nameOrId): Promise<AlwaysOnCampaignInfo>

Get an always-on campaign by name or ID

Parameters

workspaceId

string

Workspace ID (required)

nameOrId

string

Campaign name or UUID

Returns

Promise<AlwaysOnCampaignInfo>

Campaign details (normalized format)


getAlwaysOnCampaignFull()

getAlwaysOnCampaignFull(workspaceId, nameOrId): Promise<AlwaysOnCampaign>

Get full always-on campaign details (JSON:API format) by name or ID

Use this method when you need access to all campaign fields including emailContent, pushContent, utmParameters, etc.

Parameters

workspaceId

string

Workspace ID (required)

nameOrId

string

Campaign name or UUID

Returns

Promise<AlwaysOnCampaign>

Full campaign object in JSON:API format


getCampaign()

getCampaign(nameOrId, workspaceId?): Promise<CampaignInfo>

Get a campaign by name or ID

Parameters

nameOrId

string

Campaign name or UUID

workspaceId?

string

Optional workspace ID to narrow search when using name

Returns

Promise<CampaignInfo>

Campaign details (normalized format)


getCampaignFull()

getCampaignFull(nameOrId, workspaceId?): Promise<Campaign>

Get full campaign details (JSON:API format) by name or ID

Use this method when you need access to all campaign fields including emailContent, pushContent, connectorConfig, etc.

Parameters

nameOrId

string

Campaign name or UUID

workspaceId?

string

Optional workspace ID to narrow search when using name

Returns

Promise<Campaign>

Full campaign object in JSON:API format


getInBrowserMessage()

getInBrowserMessage(workspaceId, nameOrId): Promise<InBrowserMessageInfo>

Get an in-browser message by name or UUID.

Parameters

workspaceId

string

nameOrId

string

Returns

Promise<InBrowserMessageInfo>


getInBrowserMessageFull()

getInBrowserMessageFull(workspaceId, nameOrId): Promise<InBrowserMessage>

Get the full JSON:API in-browser message resource by name or UUID.

Parameters

workspaceId

string

nameOrId

string

Returns

Promise<InBrowserMessage>


getLandingPage()

getLandingPage(workspaceId, nameOrId): Promise<LandingPageInfo>

Get a Landing Page by name or UUID.

Parameters

workspaceId

string

nameOrId

string

Returns

Promise<LandingPageInfo>


getLandingPageFull()

getLandingPageFull(workspaceId, nameOrId): Promise<LandingPage>

Get the full JSON:API Landing Page resource by name or UUID.

Parameters

workspaceId

string

nameOrId

string

Returns

Promise<LandingPage>


getLineSenderAccount()

getLineSenderAccount(nameOrId, workspaceId?): Promise<LineSenderAccountInfo>

Get a LINE sender account by name or ID

Parameters

nameOrId

string

Account name or UUID

workspaceId?

string

Optional workspace ID to scope the search

Returns

Promise<LineSenderAccountInfo>

LINE sender account (normalized format)


getTemplate()

getTemplate(nameOrId, workspaceId?): Promise<EmailTemplateInfo>

Get an email template by name or ID

Parameters

nameOrId

string

Template name or UUID

workspaceId?

string

Optional workspace ID to narrow search when using name

Returns

Promise<EmailTemplateInfo>

Template details (normalized format)


getTemplateFull()

getTemplateFull(nameOrId, workspaceId?): Promise<EmailTemplate>

Get full email template details (JSON:API format) by name or ID

Use this method when you need access to all template fields including htmlTemplate, beefreeJson, templateVariables, etc.

Parameters

nameOrId

string

Template name or UUID

workspaceId?

string

Optional workspace ID to narrow search when using name

Returns

Promise<EmailTemplate>

Full template object in JSON:API format


getUploadAttempt()

getUploadAttempt(workspaceId, id): Promise<UploadAttemptInfo>

Get a Landing Page upload attempt including its completed asset manifest.

Parameters

workspaceId

string

id

string

Returns

Promise<UploadAttemptInfo>


getWebDomain()

getWebDomain(nameOrId): Promise<WebDomainInfo>

Get a Web Domain by FQDN or UUID with its current deployment state.

Parameters

nameOrId

string

Returns

Promise<WebDomainInfo>


getWebDomainFull()

getWebDomainFull(nameOrId): Promise<WebDomain>

Get the full JSON:API Web Domain resource by FQDN or UUID.

Parameters

nameOrId

string

Returns

Promise<WebDomain>


getWorkspace()

getWorkspace(nameOrId): Promise<WorkspaceInfo>

Get a workspace by name or ID

Parameters

nameOrId

string

Workspace name or UUID

Returns

Promise<WorkspaceInfo>

Workspace details (normalized format)


getWorkspaceFull()

getWorkspaceFull(nameOrId): Promise<Workspace>

Get full workspace details (JSON:API format) by name or ID

Use this method when you need access to all workspace fields including workspaceConfig, ownerUser, etc.

Parameters

nameOrId

string

Workspace name or UUID

Returns

Promise<Workspace>

Full workspace object in JSON:API format


launchAlwaysOnCampaign()

launchAlwaysOnCampaign(workspaceId, nameOrId): Promise<void>

Parameters

workspaceId

string

nameOrId

string

Returns

Promise<void>


launchCampaign()

launchCampaign(nameOrId, workspaceId?): Promise<void>

Launch a campaign

Transitions a DRAFT campaign to ACTIVE status and begins sending.

Parameters

nameOrId

string

Campaign name or UUID

workspaceId?

string

Optional workspace ID to narrow search when using name

Returns

Promise<void>


listAlwaysOnCampaigns()

listAlwaysOnCampaigns(options): Promise<AlwaysOnCampaignInfo[]>

List always-on campaigns

Parameters

options

Filter and pagination options

limit?

number

offset?

number

status?

AlwaysOnCampaignStatus

type?

CampaignType

workspaceId

string

Returns

Promise<AlwaysOnCampaignInfo[]>

List of always-on campaigns (normalized format)


listCampaigns()

listCampaigns(options?): Promise<CampaignInfo[]>

List campaigns

Parameters

options?

Filter and pagination options

limit?

number

offset?

number

status?

CampaignStatus

type?

CampaignType

workspaceId?

string

Returns

Promise<CampaignInfo[]>

List of campaigns (normalized format)


listInBrowserMessages()

listInBrowserMessages(options): Promise<InBrowserMessageInfo[]>

List in-browser messages in a workspace.

Parameters

options
limit?

number

name?

string

offset?

number

type?

InBrowserMessageType

workspaceId

string

Returns

Promise<InBrowserMessageInfo[]>


listLandingPages()

listLandingPages(options): Promise<LandingPageInfo[]>

List Landing Pages in a workspace.

Parameters

options
limit?

number

name?

string

offset?

number

slug?

string

status?

LandingPageStatus

webDomainId?

string

workspaceId

string

Returns

Promise<LandingPageInfo[]>


listLineSenderAccounts()

listLineSenderAccounts(options?): Promise<LineSenderAccountInfo[]>

List LINE sender accounts

Parameters

options?

Filter and pagination options

limit?

number

workspaceId?

string

Returns

Promise<LineSenderAccountInfo[]>

List of LINE sender accounts (normalized format)


listMediaDirectory()

listMediaDirectory(folderPath?, options?): Promise<MediaListResult>

List directory contents in Engage DAM

Parameters

folderPath?

string

Folder path to list (e.g. "uploads"). Omit for root.

options?

ListMediaOptions = {}

Server-side filters, sorting, and pagination options.

Returns

Promise<MediaListResult>


listTemplates()

listTemplates(options?): Promise<EmailTemplateInfo[]>

List email templates

Parameters

options?

Filter and pagination options

limit?

number

offset?

number

workspaceId?

string

Returns

Promise<EmailTemplateInfo[]>

List of templates (normalized format)


listWebDomains()

listWebDomains(options?): Promise<WebDomainInfo[]>

List account-scoped Web Domains.

Parameters

options?
limit?

number

offset?

number

Returns

Promise<WebDomainInfo[]>


listWorkspaces()

listWorkspaces(options?): Promise<WorkspaceInfo[]>

List workspaces

Parameters

options?

Filter and pagination options

limit?

number

name?

string

offset?

number

Returns

Promise<WorkspaceInfo[]>

List of workspaces (normalized format)


pauseAlwaysOnCampaign()

pauseAlwaysOnCampaign(workspaceId, nameOrId): Promise<void>

Parameters

workspaceId

string

nameOrId

string

Returns

Promise<void>


pauseCampaign()

pauseCampaign(nameOrId, workspaceId?): Promise<void>

Pause a campaign

Temporarily suspends an ACTIVE campaign.

Parameters

nameOrId

string

Campaign name or UUID

workspaceId?

string

Optional workspace ID to narrow search when using name

Returns

Promise<void>


publishLandingPage()

publishLandingPage(workspaceId, nameOrId): Promise<LandingPageInfo>

Publish the current completed upload for a Landing Page.

Parameters

workspaceId

string

nameOrId

string

Returns

Promise<LandingPageInfo>


resolveAlwaysOnCampaignId()

resolveAlwaysOnCampaignId(workspaceId, nameOrId): Promise<string>

Resolve always-on campaign name or ID to campaign ID

Parameters

workspaceId

string

Workspace ID (required for always-on campaigns)

nameOrId

string

Campaign name or UUID

Returns

Promise<string>

Campaign ID

Throws

When campaign is not found or multiple matches exist


resolveCampaignId()

resolveCampaignId(nameOrId, workspaceId?): Promise<string>

Resolve campaign name or ID to campaign ID

Parameters

nameOrId

string

Campaign name or UUID

workspaceId?

string

Optional workspace ID to narrow search

Returns

Promise<string>

Campaign ID

Throws

When campaign is not found or multiple matches exist


resolveInBrowserMessageId()

resolveInBrowserMessageId(workspaceId, nameOrId): Promise<string>

Resolve a workspace-scoped In-Browser Message name or UUID to its ID.

Parameters

workspaceId

string

nameOrId

string

Returns

Promise<string>


resolveLandingPageId()

resolveLandingPageId(workspaceId, nameOrId): Promise<string>

Resolve a workspace-scoped Landing Page name or UUID to its ID.

Parameters

workspaceId

string

nameOrId

string

Returns

Promise<string>


resolveTemplateId()

resolveTemplateId(nameOrId, workspaceId?): Promise<{ id: string; name: string; }>

Resolve email template name or ID to template ID

Parameters

nameOrId

string

Template name or UUID

workspaceId?

string

Optional workspace ID to narrow search

Returns

Promise<{ id: string; name: string; }>

Template ID and name

Throws

When template is not found or multiple matches exist


resolveWebDomainId()

resolveWebDomainId(nameOrId): Promise<string>

Resolve a Web Domain FQDN or UUID to its ID.

Parameters

nameOrId

string

Returns

Promise<string>


resolveWorkspaceId()

resolveWorkspaceId(nameOrId): Promise<string>

Resolve workspace name or ID to workspace ID

Parameters

nameOrId

string

Workspace name or UUID

Returns

Promise<string>

Workspace ID

Throws

When workspace is not found or multiple matches exist


resumeAlwaysOnCampaign()

resumeAlwaysOnCampaign(workspaceId, nameOrId): Promise<void>

Parameters

workspaceId

string

nameOrId

string

Returns

Promise<void>


resumeCampaign()

resumeCampaign(nameOrId, workspaceId?): Promise<void>

Resume a campaign

Resumes a PAUSED campaign.

Parameters

nameOrId

string

Campaign name or UUID

workspaceId?

string

Optional workspace ID to narrow search when using name

Returns

Promise<void>


unpublishLandingPage()

unpublishLandingPage(workspaceId, nameOrId): Promise<LandingPageInfo>

Unpublish a Landing Page while retaining its saved draft.

Parameters

workspaceId

string

nameOrId

string

Returns

Promise<LandingPageInfo>


updateAlwaysOnCampaign()

updateAlwaysOnCampaign(workspaceId, nameOrId, input): Promise<AlwaysOnCampaignInfo>

Update an always-on campaign

Parameters

workspaceId

string

Workspace ID (required)

nameOrId

string

Campaign name or UUID

input

UpdateAlwaysOnCampaignInput

Campaign update parameters

Returns

Promise<AlwaysOnCampaignInfo>

Updated campaign (normalized format)


updateCampaign()

updateCampaign(nameOrId, input, workspaceId?): Promise<CampaignInfo>

Update a campaign

Parameters

nameOrId

string

Campaign name or UUID

input

UpdateCampaignInput

Campaign update parameters

workspaceId?

string

Optional workspace ID to narrow search when using name

Returns

Promise<CampaignInfo>

Updated campaign (normalized format)


updateInBrowserMessage()

updateInBrowserMessage(workspaceId, nameOrId, input): Promise<InBrowserMessageInfo>

Update an in-browser message draft.

Parameters

workspaceId

string

nameOrId

string

input

UpdateInBrowserMessageInput

Returns

Promise<InBrowserMessageInfo>


updateLandingPage()

updateLandingPage(workspaceId, nameOrId, input): Promise<LandingPageInfo>

Update a Landing Page draft.

Parameters

workspaceId

string

nameOrId

string

input

UpdateLandingPageInput

Returns

Promise<LandingPageInfo>


updateTemplate()

updateTemplate(nameOrId, input, workspaceId?): Promise<EmailTemplateInfo>

Update an email template

Parameters

nameOrId

string

Template name or UUID

input

UpdateTemplateInput

Template update parameters

workspaceId?

string

Optional workspace ID to narrow search when using name

Returns

Promise<EmailTemplateInfo>

Updated template (normalized format)


updateWebDomain()

updateWebDomain(nameOrId, input): Promise<WebDomainInfo>

Update a Web Domain's display metadata.

Parameters

nameOrId

string

input

UpdateWebDomainInput

Returns

Promise<WebDomainInfo>


updateWorkspace()

updateWorkspace(nameOrId, input): Promise<WorkspaceInfo>

Update a workspace

Parameters

nameOrId

string

Workspace name or UUID

input

UpdateWorkspaceInput

Workspace update parameters

Returns

Promise<WorkspaceInfo>

Updated workspace (normalized format)


uploadLandingPageStaticSite()

uploadLandingPageStaticSite(workspaceId, site, zipFileName): Promise<UploadAttemptInfo>

Upload a locally validated static site and complete its upload attempt.

The direct presigned PUTs intentionally use a fresh unauthenticated request; TD API credentials are only used for the create/complete API calls.

Parameters

workspaceId

string

site

LandingPageStaticSite

zipFileName

string

Returns

Promise<UploadAttemptInfo>


uploadLineImagemapImage()

uploadLineImagemapImage(filePath): Promise<LineImagemapUploadResult>

Upload an image for use as a LINE imagemap baseUrl.

Parameters

filePath

string

Absolute or relative path to a JPEG or PNG image (min 1040px wide, max 10MB)

Returns

Promise<LineImagemapUploadResult>

Upload result with baseUrl and resized URLs


uploadMediaFile()

uploadMediaFile(filePath, storagePath?, conflictStrategy?): Promise<MediaFileUploadResult>

Upload a file to Engage DAM (Digital Asset Management)

Parameters

filePath

string

Local file path to upload

storagePath?

string

Destination path in DAM (e.g. "uploads/image.jpg" or "folder/image.jpg"). If omitted, uses the filename from filePath in the root.

conflictStrategy?

MediaConflictStrategy = 'ask'

What to do when the file already exists

Returns

Promise<MediaFileUploadResult>

Upload result containing file metadata (name, public-url, thumbnail, etc.)