AMPscript Function Reference (Next)
The subset of AMPscript that Marketing Cloud Next supports — searchable and filterable, with the Core API version each function became available in and its Handlebars equivalent.
Marketing Cloud Next runs a subset of the AMPscript surface that Engagement offers. This page lists only the functions the catalog marks as available on Next, together with the Core API version they arrived in and the Handlebars helper that covers the same job.
The API version column comes from the language catalog that also powers the SFMC Language Service and the ESLint rules. The Verified badge, however, means a runtime sweep on a live Engagement CloudPage and E-Mail — those linked pages document Engagement behaviour and have not been re-run on Next. Treat them as a strong indication, not as proof for Next.
Supported functions
Verified means the function completed a runtime sweep on a live Engagement CloudPage and has a reference page — the name links to it. A name without the badge is listed from the language catalog and has not been proven here; use ampscript.guide for those until a sweep reaches them.
| Function | API version | Handlebars | Returns | Description |
|---|---|---|---|---|
Add() Verified
|
67 | add
|
number |
Computes the sum of two numeric values. |
BuildRowsetFromJSON() Verifieddiffers
|
67 | jsonPath
|
rowset |
Parses a JSON string and returns a rowset. |
Concat() Verified
|
67 | concat
|
string |
Concatenates two or more string values. |
ContentBlockByID() Verified
|
67 | — | string |
Retrieves and renders a Content Builder content block by its numeric ID. |
ContentBlockByKey() Verified
|
67 | getContentBlock
|
string |
Retrieves and renders a Content Builder content block by its customer key. |
ContentBlockByName() Verified
|
67 | — | string |
Retrieves and renders a Content Builder content block by its folder path and name. |
DateAdd() Verified
|
67 | dateAdd
|
date |
Adds a whole number of intervals to a date value. Only the five documented units are accepted and every other unit, including seconds and weeks, aborts the page — as does a non-integer amount or a date the engine cannot parse. |
DateDiff() Verified
|
67 | dateDiff
|
number |
Counts how many boundaries of the requested unit lie between two dates, by truncating both to that unit and subtracting — so a 23-hour gap that crosses midnight counts as 1 day, while 23 hours within one day counts as 0. Finer units than the one requested are ignored rather than rounded. |
DateParse() Verified
|
67 | — | date |
Parses a date string into a date value. A string the parser cannot read aborts the page instead of returning a sentinel, and an ambiguous day-first string such as 5/8/2026 is silently read month-first rather than rejected. An offset or GMT marker in the input is honoured and converted to the account time zone. |
Divide() Verified
|
67 | divide
|
number |
Divides the first number by the second. |
Empty() Verified
|
67 | isEmpty
|
boolean |
Returns true when the value is an empty string, an unset variable, or an undeclared variable. Whitespace, the number 0, the string "0" and the string "false" are all treated as present. |
Field() Verified
|
67 | get
|
string |
Retrieves the value of a named field from a rowset row. The two-argument form aborts the page when the column is absent; pass the optional third argument as 0 (or false) to get an empty string for a possibly-missing column instead. |
Format() Verifieddiffers
|
67 | format
|
string |
Formats a number, a date or a string with a .NET format pattern. The third parameter only accepts Date or the empty string; the documented value Number aborts the page. |
FormatCurrency() Verified
|
67 | formatCurrency
|
string |
Formats a number as a currency amount for a locale, choosing the symbol, the separators and the symbol position from that locale. Rounding is half-up. |
FormatDate() Verifieddiffers
|
67 | format
|
string |
Formats a date according to a date pattern, a time pattern and a locale. The two pattern arguments use separate, case-insensitive token sets: in the date pattern mm means month, and minutes are only reachable from the time pattern.In MCN, uses Java SimpleDateFormat format strings instead of .NET. Omitting dateFormat returns the G standard format (e.g. "5/15/2026 1:23:45 PM"). |
FormatNumber() Verified
|
67 | formatNumber
|
string |
Formats a number with a standard or custom .NET numeric pattern, optionally for a locale. Rounding is half-up. |
IIf() Verified
|
67 | iif
|
string |
Returns one of two values based on a boolean expression (inline if). Only a real comparison or a boolean-returning function selects the true branch; a plain string or number always selects the false branch. Only the selected branch is evaluated, so a call that would abort the page is safe in the branch that is not taken. |
IndexOf() Verified
|
67 | indexOf
|
number |
Returns the 1-based position of a substring, matching case-insensitively. An undocumented third argument selects which occurrence to locate. |
IsNull() Verifieddiffers
|
67 | isEmpty
|
boolean |
Returns true only for a genuine null, which in practice means a data extension field with no value. An unset or undeclared variable, an empty string, whitespace and every ordinary value all return false, so this is not a general emptiness test. |
Length() Verified
|
67 | length
|
number |
Returns the number of characters in a string. |
Lookup() Verified
|
67 | queryFirst
|
string |
Returns a single field value from the first matching row in a data extension. A no-match returns an empty string.In MCN, search arguments must be provided in column/value pairs - an odd count causes an error. All filter keys must fully specify the composite primary key. |
Lowercase() Verified
|
67 | lowercase
|
string |
Converts a string to all lowercase characters. |
Mod() Verified
|
67 | modulo
|
number |
Returns the remainder after dividing the first number by the second (modulo). |
Multiply() Verified
|
67 | multiply
|
number |
Computes the product of two numeric values. |
Now() Verified
|
67 | now
|
date |
Returns the current system date and time in Central Standard Time, with no daylight-saving adjustment. Every call within one render returns the same instant. |
Output() Verifieddiffers
|
67 | — | void |
Writes the result of a nested function call into the rendered content. A string literal, a bare variable or a number renders nothing at all, without raising an error. |
OutputLine() Verified
|
67 | — | void |
Writes the result of a nested function call into the rendered content, followed by a carriage return and line feed. A string literal, a bare variable or a number renders only the line break. The break is not an HTML line break, so an HTML view keeps everything on one line unless the content sits inside a preformatted element. |
ProperCase() Verified
|
67 | properCase
|
string |
Converts a value to proper (title) case. Every letter after the first of a word is forced to lower case, so existing internal capitals are lost. |
RaiseError() Verified
|
67 | raiseError
|
void |
Raises a runtime error, optionally skipping the current subscriber or returning an API error. Outside a send it is not a graceful abort: on a landing page it discards everything already written and answers the same generic failure any other aborting call gives, with the message nowhere in the response. |
Random() Verifieddiffers
|
67 | random
|
number |
Returns a random integer between the two specified values (inclusive). Both bounds must be whole numbers; a decimal bound aborts the page. The bounds may be supplied in either order. |
Replace() Verified
|
67 | replace
|
string |
Replaces all occurrences of a substring with a new value, matching case-insensitively. The source is scanned once, so text formed by a replacement is not replaced again. |
ReplaceList() Verified
|
67 | — | string |
Replaces every occurrence of each supplied search value with one common replacement value, matching case-insensitively. The search values are applied one after another in the order given, so text produced by an earlier replacement can still be matched by a later one. |
RetrieveSalesforceObjects() Verified
|
67 | query
|
rowset |
Retrieves records from a connected Salesforce Sales or Service Cloud object via Marketing Cloud Connect and returns them as a rowset. Requires an active Marketing Cloud Connect integration; a call against an unknown object name aborts the page. |
Row() Verified
|
67 | get
|
row |
Returns a specific row from a rowset by its 1-based index. Index 0 (or any out-of-range index) aborts the page rather than returning an empty row. |
RowCount() Verified
|
67 | length
|
number |
Returns the number of rows in a rowset. |
StringToDate() Verified
|
67 | — | date |
Converts a date string to a date value. Behaves identically to DateParse for every input format, but takes no second argument, so DateParse is the only one of the two that can return the instant in UTC. A string the parser cannot read aborts the page instead of returning a sentinel, and an ambiguous day-first string such as 5/8/2026 is silently read month-first rather than rejected.In MCN, returns a locale-formatted string (G standard format, e.g. "5/15/2026 1:23:45 PM") instead of a dateTime object. Cannot be reliably passed to FormatDate() or other date functions in MCN - use FormatDate() directly instead. |
Substring() Verified
|
67 | substring
|
string |
Extracts a portion of a string starting at the given index for the specified length. A start position below 1 is treated as the first character. |
Subtract() Verified
|
67 | subtract
|
number |
Computes the difference between two numeric values. |
Trim() Verified
|
67 | trim
|
string |
Removes leading and trailing whitespace from a value. Tabs, line breaks and the non-breaking space count as whitespace. |
Uppercase() Verified
|
67 | uppercase
|
string |
Converts a string to all uppercase characters. The German sharp s remains unchanged rather than expanding to SS. |
v() Verified
|
67 | — | string |
Outputs a value inline, normally a variable reference. A string or number literal and a nested function call are accepted as well, each rendering its own value. |
Related
- Handlebars helper reference — the full helper catalog, including the ones with no AMPscript counterpart
- Differs from official docs (Next) — where runtime behaviour contradicts the official reference
- Full AMPscript catalog (Engagement) — every function, including the ones Next does not support