# DFC change checklist

For any change to DFC configuration that a live contact flow reads. There is no draft state and
no publish step: saving an item changes the next contact.

## Before you change anything

- [ ] Confirm the instance selector at the top of the page is the one you mean to change.
- [ ] Open the item and check what references it. Anything listed there is also affected.
- [ ] If the item is shared between lines or business areas, agree the change with whoever owns
      the other ones first.
- [ ] Decide whether you are changing a value or the schema. A value is routine. A schema change
      is a contract change, and belongs in a change window.

## If you are changing a schema

- [ ] Search the contact flows that read this entity for the field name. A flow reading a field
      that no longer exists receives a blank, not an error, and branches accordingly.
- [ ] Adding a required field invalidates every existing item until someone edits each one.
- [ ] Renaming an entity rewrites the path of everything inside it, including items in child
      entities. Any flow asking for the old path stops finding anything.

## Specific traps

- [ ] **Prompts are SSML.** The neural voice rejects some tags, `<emphasis>` most commonly, and a
      rejected prompt is played as silence with no error. Use `<prosody>` for stress.
- [ ] **Connect resource ARNs are instance-specific.** A queue ARN copied from another instance
      resolves fine in the portal and fails at runtime.
- [ ] **Booleans arrive as text.** A flow compares them against `true`, not a boolean.
- [ ] **Numbers arrive as text.** Compare them as Number in the flow, or `"9"` sorts above
      `"25"`.

## After you change it

- [ ] Place a test call. This is the only step that proves the flow reads what you think it does.
- [ ] If anything looks wrong, read the flow log before changing anything else. It records the
      path requested, the full response, and the exact text and voice of every prompt.
- [ ] A prompt block whose start and end share a timestamp played nothing. That is a rejected
      prompt, not a fast one.

## If you need to undo it

- [ ] Set the value back and save. The next contact gets the old behaviour.
- [ ] For a shared item, tell the other owners it changed twice.
- [ ] Where a change needs an approval trail rather than an undo, route DFC edits through change
      requests and the audit log instead.
