# Task input_data formats


> Choose an exact public job_type and JSON input_data format for Translate, Custom, Template, Conversion, or Agent configuration.


Canonical URL: https://www.copyhero.app/help/technical-reference/task-input-data

Every reusable task has a `job_type` and an `input_data` JSON object. At an API
boundary, `input_data` may be carried as a serialized JSON string; the examples
in this reference show the decoded object so its fields are readable.

Use the CopyHero editor for normal configuration. Use these contracts when you
need to inspect or produce a supported format programmatically, and include only
documented fields and values.

## Public configuration types [#public-configuration-types]

| `job_type`   | Public name | Configure in | Reference                                                                      |
| ------------ | ----------- | ------------ | ------------------------------------------------------------------------------ |
| `translate`  | Translate   | **Tasks**    | [Translate input\_data](/help/technical-reference/task-input-data/translate)   |
| `custom`     | Custom      | **Tasks**    | [Custom input\_data](/help/technical-reference/task-input-data/custom)         |
| `template`   | Template    | **Tasks**    | [Template input\_data](/help/technical-reference/task-input-data/template)     |
| `conversion` | Conversion  | **Tasks**    | [Conversion input\_data](/help/technical-reference/task-input-data/conversion) |
| `agent`      | Agent       | **Agents**   | [Agent input\_data](/help/technical-reference/task-input-data/agent)           |

`template` is the current Template task `job_type`. Do not substitute `copy`.
Agent configuration has a separate **Agents** surface even though an agent can
be used as a workflow step.

## Shared rules [#shared-rules]

* `input_data` must decode to a JSON object, not an array or plain string.
* JSON field names and enum values are case-sensitive.
* Do not add undocumented fields based on a job payload seen in workflow
  history. Run-time payloads also contain system-managed context.
* Store-dependent values are resolved when the task runs and can fail when the
  required destination setting is unavailable.
* A configuration accepted for a future run does not change completed history.

The `scrape`, `shopify_upsert`, and `shopify_publish` names are
[system-managed workflow steps](/help/technical-reference/system-managed-steps),
not public task-authoring formats.

## Related guides [#related-guides]

* [Understand tasks](/help/tasks/understand-tasks)
* [Build a workflow](/help/workflows/build-workflow)
* [Manage tasks](/help/tasks/manage-tasks)