To use channel actions at their full power, you must understand how channel actions function when used inside different Flows. Flow types have specific goals. Some perform clear functions, like sending one time blasts. Others are for broader goals, like keeping audiences in sync between two systems.
As a result, flow types inherently determine what a channel action can accomplish. This logic varies depending on the flow.
Tip
When you choose a channel action, think about how you'd like to use it and verify in the table below that it will work as expected in your chosen flow type.
Flow Type | Function | Data Handled | Logic |
**One Time** | Sends data once at send time | Messages or contacts | Doesn't update or remove data |
**Triggered** | _By segment membership:_ Sends data, when a newly added contact joins a segment _By an event:_ Sends data, once when a contact performs a specific event | Messages or contacts | Doesn't update or remove data |
**Stream** | Adds or removes data, when your <<glossary:Data Pipe>> updates for all **newly** added or removed contacts | Contacts only | Doesn't update data |
**Recurring** | _For messages_: Sends on a schedule, for all newly added contacts _For contacts_: Adds, updates, or removes contacts and their content on a schedule for all newly added, updates, or removed contacts | Messages or contacts | _For messages_: Doesn't update or remove messages |