# External Forms (eForms)

{% hint style="info" %}
Note that some specialist knowledge is required in order to integrate eForms with your scripts.
{% endhint %}

External HTML forms can be seamlessly integrated into your scripts by using an iFrame to present additional information to the user allowing the user to interact with the form entering or selecting data to be returned to the script. Typically, these forms will be dynamic web pages i.e. dynamically generated with a server-side technology such as ASP.Net, JSP, PHP etc.\
\
These forms will accept request parameters to select the information to be displayed and to determine their behaviour. The request parameters should only contain simple key identifiers and conform to the usual browser url requirements. The input parameters are not intended for passing large data items and should typically contain < 100 characters. A simple mechanism is provided for forms to pass data back to integrate with your scripts as described here. Forms can be hosted anywhere (with an appropriate connection) and do not have to reside on the same Keyfax web server.

Data is returned to the script by posting the form data to a URL on the Keyfax website. A script-specific url is passed to the eform as an additional request parameter and the eform must dynamically update the HTML form action with the supplied value when presenting the form to the browser. E.g. in ASP.Net this would be as below:

```
<form id="kfForm" action="<%= Request("kfPostUrl") %>" method="post">
```

As posted data there is no restriction on the number or size of fields returned however it should be considered how this information is to be used within the script and it is not expected that large volumes of data will be returned.

The Keyfax form return url will receive the posted data (formatted into xml for multiple form fields) for the current script step. This will typically record the result into a Script Databox with a Databox Write action. The script will then replace the iframe with the next script step as appropriate.

To create an eForm, select 'External Form' on the Question type menu (if this option is not listed, please contact Support as the functionality may be disabled):

You will then be prompted to enter the fields as below:

<div align="center"><figure><img src="/files/sLF2D94qGvS5pplE8PSd" alt=""><figcaption><p>eForm Properties</p></figcaption></figure></div>

### **Properties**

**Name** - The internal name of this eForm

**Display** - Optional text to be displayed above the eForm

**Url** - The target address to use for the eForm. Note this can include Databox bookmarks (right click in field to show popup menu of bookmarks).

**Query string** - Optional list of query string arguments, as required. Note this can include bookmarks (right click in field to show popup menu).\
\
For a more Technical Description of how to use eForms, [click here](http://dev.touch-base.com/helpconsole2010/Keyfax%20Help/default.aspx?pageid=eform_technical_details).&#x20;


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.keyfax.biz/product-suite/admin/entities/questions/external-forms-eforms.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
