ampscript-data
Canonical AMPscript function catalog, keywords, and personalization strings for Salesforce Marketing Cloud (SFMC) tooling.
This package is the single source of truth consumed by:
Installation
npm install ampscript-data
Usage
import {
FUNCTIONS,
AMPSCRIPT_KEYWORDS,
AMPSCRIPT_GLOBALS,
PERSONALIZATION_STRINGS,
DEPRECATED_FUNCTIONS,
functionLookup,
functionNames,
CANONICAL_FUNCTIONS,
FUNCTION_CANONICAL_MAP,
deprecatedFunctionLookup,
isEmailExcluded,
isMcnSupported,
getMcnApiVersion,
getMcnNotes,
} from 'ampscript-data';
FUNCTIONS
An array of all known AMPscript functions with full metadata:
import { FUNCTIONS } from 'ampscript-data';
for (const fn of FUNCTIONS) {
console.log(fn.name);
console.log(fn.minArgs);
console.log(fn.maxArgs);
console.log(fn.category);
console.log(fn.description);
console.log(fn.params);
console.log(fn.returnType);
console.log(fn.syntax);
console.log(fn.example);
console.log(fn.docUrl);
console.log(fn.guideUrl);
console.log(fn.mcnSince);
console.log(fn.mcnNotes);
console.log(fn.handlebarsEquivalent);
console.log(fn.mcnHandlebarsGap);
}
functionLookup
A Map<string, FunctionEntry> keyed by lowercase function name for O(1) lookups:
import { functionLookup } from 'ampscript-data';
const entry = functionLookup.get('lookup');
functionNames
A Set<string> of all function names in lowercase — useful for existence checks:
import { functionNames } from 'ampscript-data';
if (functionNames.has('lookup')) { }
CANONICAL_FUNCTIONS
An array of function names in their canonical casing (e.g. 'Lookup'), used for casing normalization:
import { CANONICAL_FUNCTIONS } from 'ampscript-data';
FUNCTION_CANONICAL_MAP
A Map<string, string> from lowercase name to canonical-cased name:
import { FUNCTION_CANONICAL_MAP } from 'ampscript-data';
FUNCTION_CANONICAL_MAP.get('lookup');
DEPRECATED_FUNCTIONS
An array of deprecated function entries with the same shape as FUNCTIONS:
import { DEPRECATED_FUNCTIONS } from 'ampscript-data';
deprecatedFunctionLookup
A Map<string, FunctionEntry> for deprecated functions, keyed by lowercase name:
import { deprecatedFunctionLookup } from 'ampscript-data';
isEmailExcluded
Returns true if the function is not available in email send contexts:
import { isEmailExcluded } from 'ampscript-data';
isEmailExcluded('HTTPGet');
Marketing Cloud Next (MCN) compatibility
Each FunctionEntry has two MCN fields:
mcnSince | number | null | API version when MCN support was added (e.g. 67); null means MCE only |
mcnNotes | string | null | Behavioral differences on MCN vs MCE; null means no known differences |
handlebarsEquivalent | string | null | Name of the MCN Handlebars helper that replaces this function (e.g. 'add'); null when no direct helper exists |
mcnHandlebarsGap | boolean | true when the function is documented as MCN-supported but currently has no working Handlebars helper (runtime gap) |
handlebarsEquivalent and mcnHandlebarsGap drive AMPscript ↔ Handlebars conversion tooling. When mcnHandlebarsGap is true, handlebarsEquivalent is always null — the function cannot yet be expressed in MCN Handlebars and needs a manual rewrite.
Three helper functions are exported for programmatic MCN checks:
isMcnSupported
Returns true when the function is available on Marketing Cloud Next:
import { isMcnSupported } from 'ampscript-data';
isMcnSupported('Lookup');
isMcnSupported('HTTPGet');
getMcnApiVersion
Returns the API version number (e.g. 67) when MCN support was added, or null for MCE-only functions:
import { getMcnApiVersion } from 'ampscript-data';
getMcnApiVersion('Lookup');
getMcnApiVersion('HTTPGet');
getMcnNotes
Returns a string describing behavioral differences on MCN, or null when the function behaves identically across platforms:
import { getMcnNotes } from 'ampscript-data';
getMcnNotes('FormatDate');
getMcnNotes('Lookup');
getMcnNotes('ProperCase');
AMPSCRIPT_KEYWORDS
An array of AMPscript language keyword descriptors (if, for, set, etc.). Each entry carries a short description and a completion snippet with ${n:placeholder} tab stops:
import { AMPSCRIPT_KEYWORDS } from 'ampscript-data';
for (const kw of AMPSCRIPT_KEYWORDS) {
console.log(kw.name);
console.log(kw.description);
console.log(kw.snippet);
}
AMPSCRIPT_GLOBALS
An array of read-only AMPscript language globals that are not subscriber personalization attributes:
import { AMPSCRIPT_GLOBALS } from 'ampscript-data';
for (const global of AMPSCRIPT_GLOBALS) {
console.log(global.name);
console.log(global.description);
}
PERSONALIZATION_STRINGS
An array of AMPscript system personalization string descriptors, including subscriber attributes and message-context values:
import { PERSONALIZATION_STRINGS } from 'ampscript-data';
for (const ps of PERSONALIZATION_STRINGS) {
console.log(ps.name);
console.log(ps.description);
}
License
MIT