--- title: "Parameters" slug: "efp-batch-processor-parameters" description: "Streamline document creation with the Exact Forms Plus Batch Processor. Learn to set up email notifications and manage Batch Processing Arguments effectively." tags: ["Quickbase Extension", "Document Generation", "Exact Forms Plus"] updated: 2026-10-09T16:28:34Z published: 2026-10-09T16:28:34Z canonical: "help.quickbase.com/efp-batch-processor-parameters" --- > ## Documentation Index > Fetch the complete documentation index at: https://help.quickbase.com/llms.txt > Use this file to discover all available pages before exploring further. # Parameters The Exact Forms Plus Batch Processor creates documents in the background. A Quickbase email notification sends the value of the **Batch Processing Arguments** field to the Batch Processor, and the arguments tell it which template to use, which records to process, and where to save the documents. This page lists every argument. To set up the notification, see [Email notification setup](https://help.quickbase.com/quickbase-extensions/docs/en/efp-batch-processor-email-notification-setup). The setup wizard builds the **Batch Processing Arguments** formula for you. Open the field's properties to see it, and edit it there to change what the batch run does. ## How the arguments are written The arguments are mostly the same parameters as the [formula URL parameters](https://help.quickbase.com/quickbase-extensions/docs/en/efp-formula-url-parameters) of the buttons, written differently: - **Separate parameters with spaces**, not `&`, and don't include a web address. For example: `"clientid=Q1234" & " appid=" & AppID() &" msid=" & [Record ID#]`. - **Put values that can contain spaces in double quotes.** In a formula, write the quotes as `\"`: `& " fn=\"Purchase Order\""`, or for a field value `& " fn=\"" & [Customer Name] & "\""`. A space outside quotes stops the batch run, and nothing is written back to your records. - **Parameter names aren't case-sensitive** (`MSID` and `msid` are the same), with one exception: write `clientid=` in lowercase. - **Values are URL-decoded.** `%20` becomes a space, and a `+` becomes a space too. To pass a literal plus sign, write `%2B`. Don't use `&` in values; write it as `%26`. - **Use plain ASCII text.** Accented letters and other non-ASCII characters are removed from the arguments before the run. - **Give each parameter once.** A parameter that appears twice stops the run. - A `=` inside a value is fine, for example in a query. - If the notification sends several lines (one per record changed, for example with Grid Edit), each line is processed as a separate run. See [Email notification setup](https://help.quickbase.com/quickbase-extensions/docs/en/efp-batch-processor-email-notification-setup). ## Required parameters | Parameter | What it does | Example | | --- | --- | --- | | `clientid` | Your Quickbase Extensions client ID. Write the name in lowercase. | `"clientid=Q1234"` | | `appid` | The app the arguments come from. | `& " appid=" & AppID()` | | `type` | Sends the request to the Exact Forms Plus Batch Processor: `efpbatch` (`efpbatcheu` for apps on the EU realm). | `& " type=efpbatch"` | | `tpid` | The template: the Record ID# of the Document Templates record, or the Quickbase Document Creation template ID with `native=y`. Must be a number. | `& " tpid=1"` | | `tpdbid` | The Document Templates table. Required for Word templates; leave it empty with `native=y`. | `& " tpdbid=" & [_DBID_DOCUMENT_TEMPLATES]` | | `msdb` | The table that holds the records to process (the master table). | `& " msdb=" & Dbid()` | | `msid`, `msqid`, or `msqry` | Which records to process: one record (`msid`), a saved report (`msqid`), or a query (`msqry`). One of them is required. If you give both `msqid` and `msqry`, `msqid` is used. | `& " msid=" & [Record ID#]` | | `configid` | The batch configuration for these arguments. Required if your app's batch configurations are checked (see [Batch configuration](/quickbase-extensions/docs/efp-batch-processor-parameters#batch-configuration)). The wizard fills it in. | `& " configid=a1b2c3d4…"` | `msid`, `tpid`, `faid`, `efpdte`, `docsize`, and `mrgdocsize` must be numbers. ## Parameters that work as on the buttons These parameters do the same as on the buttons. For details and examples, follow the links to [Exact Forms Plus formula URL parameters](https://help.quickbase.com/quickbase-extensions/docs/en/efp-formula-url-parameters). | Purpose | Parameters | Batch notes | | --- | --- | --- | | [Output file](https://help.quickbase.com/quickbase-extensions/docs/en/efp-formula-url-parameters#output-file) | `docfmt`, `fn`, `fnrid`, `clist`, `clist2` | Without `fn`, the file is named `NA`. Commas in the file name become spaces, and `\ / : * ? < > \| . "` are removed. | | [Records](https://help.quickbase.com/quickbase-extensions/docs/en/efp-formula-url-parameters#multiple-records) | `slist`, `opts` | See [Limits](/quickbase-extensions/docs/efp-batch-processor-parameters#limits) for how many records a run processes. | | [Update the record](https://help.quickbase.com/quickbase-extensions/docs/en/efp-formula-url-parameters#update-the-record) | `faid`, `efpdte`, `docsize`, `upmap`, `uid`, `clear` | `clear` runs only when the record is also updated in another way, for example by `faid` or `efpdte`. | | [Protection and PDF options](https://help.quickbase.com/quickbase-extensions/docs/en/efp-formula-url-parameters#pdf-and-security) | `docpw`, `docpwo`, `wm`, `fillout`, `accessible`, `embedfonts`, `prefiles`, `addfiles` | A watermark in the wrong format stops the run: use `wm=TEXT\|COLOR\|SIZE`. | | [Merged document](https://help.quickbase.com/quickbase-extensions/docs/en/efp-formula-url-parameters#merged-document) | `mrgdbid`, `mrgrid`, `mrgfa`, `mrgfn`, `mrgdte`, `mrgdocsize`, `mrgfiles`, `mrgkeyfid`, `mrgs3keyval` | A merged document is created only when both `mrgdbid` and `mrgrid` are given. Default name: `Merged_` plus `mrgrid`. | | [Repository table](https://help.quickbase.com/quickbase-extensions/docs/en/efp-formula-url-parameters#repository-table) | `repository`, `rpdbid`, `rpfid`, `rpfidval`, `rpfafid`, `rpmode`, `rpkfid`, `rpkval`, `rpmap`, `rpuid` | | | [Cloud storage](https://help.quickbase.com/quickbase-extensions/docs/en/efp-formula-url-parameters#cloud-storage) | `amazons3`, `keyfid`, `s3keyval`, `s3bkt`, `encrypt`, `dropbox`, `dropboxdir`, `dropboxkeyfid`, `egnyte`, `egnytedir`, `egnytekeyfid` | | | [Quickbase Document Creation templates](https://help.quickbase.com/quickbase-extensions/docs/en/efp-quickbase-document-creation-templates#parameters) | `native`, `stdbid` | With `native=y`, Quickbase generates a Word document that Exact Forms Plus then processes. | | Other | `apptoken` | Not needed; the wizard leaves it empty. | Not available in batch: `test`, `preqbaction`, and `ver`. `stream` is accepted but ignored, because nothing is opened in a browser. ## Batch-only parameters These parameters tell the Batch Processor where to report what happened. ### Status field on the master record | Parameter | What it does | Example | | --- | --- | --- | | `msdbefid` | A text field on the master record that gets the result of the run (see [What the Batch Processor writes back](/quickbase-extensions/docs/efp-batch-processor-parameters#results)). For a single-record setup, the wizard uses **EFP Batch Trigger - Msg Field**. | `& " msdbefid=45"` | ### Batch Processing, Logs, and Errors tables (bulk setup) | Parameter | What it does | Example | | --- | --- | --- | | `efpbdbid` | The Batch Processing table, which holds the record the run was started from. | `& " efpbdbid=" & Dbid()` | | `efpbrid` | The Record ID# of that Batch Processing record. | `& " efpbrid=" & [Record ID#]` | | `efpbkey` | The record's key value, if the Batch Processing table's key field isn't Record ID#. Optional. | `& " efpbkey=" & [Batch Key]` | | `efptfid` | The **Trigger Field** on the Batch Processing record. It gets the result of the run. | `& " efptfid=6"` | | `efpadbid` | The Batch Processing Logs table. Each run adds a log record. | `& " efpadbid=" & [_DBID_BATCH_PROCESSING_LOGS]` | | `errdbid` | The Batch Processing Errors table. | `& " errdbid=" & [_DBID_BATCH_PROCESSING_ERRORS]` | | `errmsgfid` | The Errors table field for the error message. | `& " errmsgfid=6"` | | `errrfid` | The Errors table's reference field to the Batch Processing table. | `& " errrfid=7"` | | `errrfidval` | The value to put in `errrfid`, usually the Batch Processing record's Record ID#. | `& " errrfidval=" & [Record ID#]` | | `errargsfid` | The Errors table field for the arguments of the failed run. | `& " errargsfid=8"` | Errors are logged to the Errors table only when all five `err…` parameters are given. ## Examples ### Single-record setup (master table) Creates a PDF for the record that changed and saves it to **EFP Document**: ```plaintext "clientid=Q1234" & " appid=" & AppID() &" tpdbid=" & [_DBID_DOCUMENT_TEMPLATES] &" tpid=1" & " msid=" & [Record ID#] &" msdb=" & Dbid() &" faid=51" & " efpdte=52" & " docfmt=pdf" & " fn=\"EFP_Document\"" & " apptoken=" &" msdbefid=53" & " type=efpbatch" & " configid=a1b2c3d4…" ``` ### Bulk setup (Batch Processing table) Creates a document for every record in report 12 of the master table, logs the run, and merges the documents into one PDF on the Batch Processing record: ```plaintext "clientid=Q1234" & " appid=" & AppID() &" tpdbid=" & [_DBID_DOCUMENT_TEMPLATES] &" tpid=1" & " msdb=" & [_DBID_PURCHASE_ORDERS] &" msqid=12" & " fn=\"EFPBatchFile\"" & " faid=51" & " efpdte=52" & " docfmt=pdf" & " efpbdbid=" & Dbid() &" efpbrid=" & [Record ID#] &" efptfid=6" & " efpadbid=" & [_DBID_BATCH_PROCESSING_LOGS] &" errdbid=" & [_DBID_BATCH_PROCESSING_ERRORS] &" errmsgfid=6" & " errrfid=7" & " errrfidval=" & [Record ID#] &" errargsfid=8" & " mrgdbid=" & Dbid() &" mrgrid=" & [Record ID#] &" mrgfa=9" & " mrgfn=\"MergedFile\"" & " mrgdte=10" & " apptoken=" &" configid=a1b2c3d4…" & " type=efpbatch" ``` Use your own field IDs, table aliases, and configuration ID. To send these arguments to the Batch Processor, see [Email notification setup](https://help.quickbase.com/quickbase-extensions/docs/en/efp-batch-processor-email-notification-setup). ## Batch configuration When the setup wizard creates a batch setup, it also saves a batch configuration: a list of parameters and the values they're allowed to have, for example the file attachment field in `faid`. If batch configurations are checked for your app, every run is compared with the configuration given in `configid`: - Only parameters listed in the configuration are checked. Others aren't. - A listed parameter's value must match one of its allowed values exactly, including upper and lower case. A listed parameter that you leave out of the arguments passes. - If you change a checked value in the formula, add the new value in the **Batch Configuration Portal** too. See [Manage batch configurations](https://help.quickbase.com/quickbase-extensions/docs/en/batch-config-portal-manage). If the arguments don't match, the run stops and one of these messages is written back: - *No ConfigID was passed in. This configuration requires a ConfigID.* - *Could not find a Config with ConfigID* … *- this configuration requires a ConfigID.* - *The following parameters do not match the configuration: [*…*]* - *Encountered duplicate parameter [*…*]* ## What the Batch Processor writes back When a run finishes, the Batch Processor writes the result to the field in `msdbefid` (single-record setup) or `efptfid` (bulk setup), replacing *Batch Execution Requested_* and the time that the **Execute EFP Batch** or **Execute Batch** button put there: | Result | Text written | | --- | --- | | Success | *PROCESS COMPLETED_* and the date and time, for example *PROCESS COMPLETED_10/7/2026 2:15:03 PM* | | Error | *ERROR ENCOUNTERED_*, the date and time, and the error message | | No records found | *PROCESS COMPLETED_*, the date and time, and *NO RECORDS TO PROCESS*. With an Errors table, an error record *There were NO Master records returned to process* is added and the field shows *ERROR ENCOUNTERED_* instead. | The time is in your app's time zone. Once the text no longer contains *Requested*, the button to start a run appears again. In a bulk setup, each run also adds a record to the **Batch Processing Logs** table, with **Status**, **Notes**, **Documents Processed**, **Start**, and **End** (**Run Duration** is a formula). The Batch Processor writes these fields by name, so don't rename them. If error logging is set up, each error adds a **Batch Processing Errors** record with the **Error Message** and the **Arguments**. ## Limits - **Documents per run:** your account sets the maximum number of documents a batch run creates. If the records to process are more than that, only the first ones are processed and the rest are skipped, with no error. Split large runs into smaller reports or queries if needed. - **Records per embedded report:** also set by your account. If an embedded report returns more, the run stops with *ERROR: Maximium # of records for a subtable exceeded.* - **An error stops the run.** Documents created for earlier records are kept, but the rest aren't created, and the log shows 0 documents processed. ## If the batch run doesn't work | What you see | What to do | | --- | --- | | The status field still says *Batch Execution Requested_* long after the run should have finished | Either the email notification didn't send, or the arguments couldn't be read. For the notification, see [If nothing happens](https://help.quickbase.com/quickbase-extensions/docs/en/efp-batch-processor-email-notification-setup#troubleshooting). In the arguments, check that `clientid=` is in lowercase, that every value with spaces is in quotes, that no parameter appears twice, and that `type=efpbatch` is present. | | *The following parameters do not match the configuration* | A value in the arguments isn't an allowed value in the batch configuration. Fix the formula, or add the value in the Batch Configuration Portal (see [Batch configuration](/quickbase-extensions/docs/efp-batch-processor-parameters#batch-configuration)). | | *The template record was not found.* … or *The template table was not found.* … | Check `tpid` and `tpdbid`. | | *A clist is required.* … | Add the fields to the template's clist with the EFP Configurator, or pass `clist` in the arguments. | | *File Name error:* … | A field used in `fn` isn't in the clist, or `fn` doesn't have exactly two `~`. | | *ERROR CREATING WATERMARK IN DOCUMENT.* … | Write `wm` as `TEXT\|COLOR\|SIZE`. | | *Document NOT Saved to Amazon S3...Error:* …, *Error occured saving file to Dropbox.* …, or *Error occured saving file to REPOSITORY TABLE.* … | The document couldn't be saved to that destination. Check the cloud storage or repository parameters. | | Fewer documents than records | The run reached your account's document limit (see [Limits](/quickbase-extensions/docs/efp-batch-processor-parameters#limits)). | If you still need help, open a [technical support case](https://help.quickbase.com/docs/get-help-from-quickbase-technical-support). See also: [Email notification setup](https://help.quickbase.com/quickbase-extensions/docs/en/efp-batch-processor-email-notification-setup), [Exact Forms Plus formula URL parameters](https://help.quickbase.com/quickbase-extensions/docs/en/efp-formula-url-parameters), [Set up Exact Forms Plus with the installation wizard](https://help.quickbase.com/quickbase-extensions/docs/en/exact-forms-plus-setup-with-wizard).