English

Use aduck in Salesforce

← Back to help

A transform is a template plus a recipe for which Salesforce data goes into it. You make one in three steps: pick the data in the builder, put the placeholders into a Word document or PDF form, and upload it. Then anyone with access can generate documents from it.

Not installed yet? Start with Install in Salesforce.

1. Build a transform

  1. In the Aduck app, open the Aduck Transform Builder tab.
  2. Give the transform a name and choose a template type:
    • Single record: one document per record. A letter, an offer, a contract.
    • Combined: one document for many records. A list, a report, a batch of labels.
  3. Choose the root object, the kind of record the document is about (Account, Opportunity, Case or any custom object), and click Start building.
  4. Click the green + next to each field you want in the document. Fields on related records work too: open a lookup such as the owner and add its fields from there.
  5. Under Child relationships (loops), add lists of related records, such as an Account's Contacts or an Opportunity's products, and pick their fields. Loops can contain loops.
  6. Click Save transform.

Each loop has a Filter, sort and limit button. Filters decide which related records are included (all filters must match), and you can sort them by a field and cap how many come along, for example the five newest open cases.

Star the objects and fields you use often; they're listed first next time.

2. Make the template

The Transform contents list in the builder shows everything you added, each with a copy button. Copy a placeholder and paste it where the value should go. A placeholder looks like this:

{{ Account.Name }}

Fields from a lookup get their own name, such as {{ Account.OwnerName }} for the account owner's name. Copying from the builder is the safest way to get them right.

Word templates

Design the document in Word as you normally would: fonts, logos, tables, headers and footers. Placeholders work everywhere, including headers and footers.

For a loop, paste the loop start on its own line before the part that repeats, and the loop end on its own line after it:

{% for Contact in Contacts %}
{{ Contact.Name }}
{% endfor %}

In a table, put the loop start in a row of its own, the row with the placeholders under it, and the loop end in a row of its own below that. The middle row is repeated for every record, and the two rows with the loop tags are removed.

A Combined template must start with a loop over the selected records, {% for Account %}, and end with its loop end. The builder shows both at the top of the list.

PDF templates

Use a fillable PDF form, made in Acrobat, LibreOffice or another PDF editor. Name each text field exactly as a placeholder, spaces included. aduck fills the fields and gives you back the same PDF.

PDF forms have fixed fields, so they can't repeat rows: use them for single-record documents, and Word for anything with lists. Only text fields are filled.

Upload it

Back in the builder, click Upload template under the saved transform. Templates can be up to 1.4 MB; keep large images out of them if you hit that. To change the template later, use Replace template.

How values come out

  • Values are written as Salesforce stores them: dates as 2026-10-07, checkboxes as true or false, numbers without thousands separators.
  • An empty field comes out blank.
  • A placeholder must be written exactly as copied, with one space inside each pair of braces. Something like {{Account.Name}} isn't recognised and stays in the document as typed.

3. Generate documents

From a record

On a record page with the Aduck Transform component, choose a transform and click Generate. The document is saved under Files on the record, and View generated document opens it. Record pages list Single record transforms for that object.

For many records

  1. Open the Aduck Bulk Run tab.
  2. Choose an object and one of its list views, and tick the records you want.
  3. Choose a transform and click Generate.

A Single record transform makes one document per record in the background, saved on each record. The tab shows progress and a result per record. A Combined transform makes one document right away, saved on the transform itself.

From a Flow

Add the action Generate Aduck Documents to any Flow. Give it the Transform Id and a collection of Record Ids. A good use is a list view button: a screen flow that receives the selected records and generates a document for each.

Usage and quota

Every generated document counts as one transformation, Word or PDF, one page or a hundred. A Combined document counts as one. Before a bulk run, aduck checks that you have enough left for the whole selection, so a run never stops halfway. Your account page shows what's used and what's left, per org.

When something looks wrong

A placeholder is still in the finished document
It isn't written exactly as the builder copies it. Check the spaces inside the braces, then paste it again from the builder.
A value is blank
Either the field is empty on the record, or it isn't added to the transform. Add it in the builder and save.
A loop shows nothing
The record has no related records that match the loop's filters. Also check that the loop start and loop end both are in the template.
“No transforms are set up for this object yet”
The record page only lists Single record transforms whose root object is this object.
The quota is used up
Generating stops with a message pointing to aduck.no. See Pricing to get more, then try again.