> ## Documentation Index
> Fetch the complete documentation index at: https://docs.alumio.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Parse from plain text

> Takes the context data and interprets it as plain text with optional settings for encoding.

export const FormField = ({property, label, required = false, diType, uiPatterns, children}) => {
  const patterns = Array.isArray(uiPatterns) ? uiPatterns : uiPatterns ? [uiPatterns] : [];
  return <div style={{
    margin: '1.5rem 0'
  }}>
      <div style={{
    display: 'flex',
    alignItems: 'baseline',
    flexWrap: 'wrap',
    gap: '0.5rem',
    marginBottom: '0.25rem'
  }}>
        <strong>{label}</strong>
        <span style={{
    fontSize: '0.7rem',
    fontWeight: 600,
    textTransform: 'uppercase',
    letterSpacing: '0.04em',
    color: required ? '#6241f5' : '#6b7280'
  }}>
          {required ? 'Required' : 'Optional'}
        </span>
      </div>

      <div>{children}</div>

      {diType || patterns.length > 0 ? <p style={{
    fontSize: '0.85rem',
    color: '#6b7280',
    marginBottom: 0
  }}>
          {diType ? <>
              See the <a href={`/references/${diType}`}>{diType}</a> reference.{' '}
            </> : null}
          {patterns.length > 0 ? <>
              Accepts a <a href={`/documentation/placeholders-and-patterns/patterns#${patterns[0]}`}>pattern</a>.
            </> : null}
        </p> : null}
    </div>;
};

Takes a piece of text and stores it, untouched, under a key you choose. Use this when a value arrives as one plain string, such as a note, a reference code, or the raw body of a message, and you simply want to place it under a named field instead of reformatting or parsing it. Nothing about the text is interpreted; the whole string is kept as-is and wrapped under the target key you set.

If the incoming text is in a character set other than UTF-8, you can turn on the encoding option to have it converted first.

This documentation describes: [Schema](/schemas/deserializer/plain-text)

## Fields

<FormField property="property" label="Target key" required>
  The key the text is stored under in the result. For example, with a target key of `message`, the incoming text becomes the value of a `message` field.
</FormField>

<FormField property="encodeInput" label="Input data is not UTF-8 encoded">
  Turn this on when the incoming text is in a character set other than UTF-8, so accented and special characters come through correctly. It is off by default. Turning it on reveals the encoding and conversion options below.
</FormField>

<FormField property="encodingFrom" label="Encoding">
  The character set the incoming text is currently in. Choose from UTF-16, ISO-8859-1, or Windows-1252. Only shown when the encoding option above is on.
</FormField>

<FormField property="modifier" label="Conversion behaviour">
  How to handle characters that cannot be converted to UTF-8: leave it as NONE to fail on an unconvertible character, IGNORE to drop it, or TRANSLIT to replace it with the closest available character. Only shown when the encoding option is on.
</FormField>

## Sample data

| Field      | Value     |
| ---------- | --------- |
| Target key | `message` |

Input:

```json theme={null}
{
    "note": "Order received from warehouse 7"
}
```

Output:

```json theme={null}
{
    "note": {
        "message": "Order received from warehouse 7"
    }
}
```

The text read from `note` is kept exactly as it was and placed under the `message` key.

```json Configuration theme={null}
{
  "prototype": "plain-text",
  "parameters": {
    "property": "message"
  }
}
```
