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
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
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?
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?
type?
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?
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
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
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.)