Overview
File Integration is an extension that turns files delivered to your Extole directory into jobs that run on their own. Each job pairs the triggers that decide when a run starts with an ordered list of tasks to perform against every delivered file. Use it for a recurring inbound CSV or SFTP feed — not a one-off Batch Jobs upload, and not a custom inbound partner campaign.
The column layout for event files is on File-based Events. This page covers installing the extension and configuring the job that already ships with it.
Install File Integration
- Open Partners in My Extole.
- Select the Extensions tab, then click + New Extension.
- Select File Integration and install it.
Configure the Event File Job
On Configuration, the Jobs list shows Event File. That job processes every row of a matching file as a discrete event. It is enabled when the extension is installed. Turn Enabled off on the job to stop processing without deleting the job. Deliver files over Extole SFTP into the directory you want processed. There is no source-connection picker on the extension — the job watches files that have already landed in your Extole directory.Triggers
Event File ships with one trigger:- File Name Matches
- Filename Match Pattern: the default is
.*\.csv$(any CSV filename, JavaScript regular expression syntax — not glob syntax such as*.csv). Leave that pattern unless you have a naming convention to enforce. A guessed prefix silently drops every other CSV the job would have processed. - Watch Directory (optional): an SFTP destination and folder. When set, the file must land under that directory on the selected destination. Leave it empty to match by filename alone.
- Filename Match Pattern: the default is
/incoming. Add it when you need the job to ignore files that land anywhere else. When both triggers are present, both must match for a file to run.
Each trigger has an Enabled setting. Turn a trigger off to ignore it without deleting it. A job whose triggers are all off does not run.
Tasks
Event File ships with two tasks, in order:- Validate Column Headers
- Expected File Headers: the column names a file must contain. The default is
email. Replace that list with the header row you actually send. - On Mismatch: FAIL stops the run; WARN records a warning and continues. The default is FAIL. Headers must match as the same set in any order.
- Expected File Headers: the column names a file must contain. The default is
- Create Events: one event per row of the validated file.
- Trigger Events: the events this job’s rows produce. Rename each component to the event name its rows use. Mark one as Default Event so every row uses that name; with none marked, the event name comes from the file (the
event_namecolumn on File-based Events). A campaign business event, reward, or creative listens by selecting one of these under Triggered By. The install ships Delayed Event only. For rows that should fire when the file is processed, add Event, rename it to the name campaigns should select, mark Default Event when every row should use that name, and leave Event enabled. Keep Delayed Event enabled only when rows should wait for a date. See Delay a File Event.
- Trigger Events: the events this job’s rows produce. Rename each component to the event name its rows use. Mark one as Default Event so every row uses that name; with none marked, the event name comes from the file (the
Delay a File Event
On Create Events, under Trigger Events, Event and Delayed Event name an event the file rows produce. Campaigns select that component under Triggered By. They differ in when the event is sent. Event sends the event when the file is processed. Rename the component to the event name. Mark Default Event when every row should use that name. Use it when the campaign should react as soon as the file lands. Add it whenever processing is immediate — including when you turn Delayed Event off. Delayed Event holds each matching row and sends the event when that row’s date arrives. Rename the component to the event name those rows use. Mark Default Event when every row should use that name. Use it when the campaign should react on the row’s date, not at the moment the file is processed. A shipment date, an account-open date, or any other future date in the file is the usual case. Rows with no date, or a date that has already passed, can wait for a delay you set before the campaign sees them. Delayed Event is installed by default. Enabled is on. Until you rename it to the event name in the file (or set Event to Delay), it does not match any rows, so nothing is held.How a Row Is Sent
Delayed Event matches a row when the row’s event name equals this trigger event’s name (the component name by default). A row with any other name is sent immediately. Timing uses the row’sevent_time column. If the file has an event_date column, that value is already stored as event_time.
A time with no time zone uses your account time zone.
The event is sent with its original name and the row’s columns. It does not reach the campaign at upload time. In a campaign that uses Triggered By, select this Delayed Event in the business event’s Triggered By; it matches the event when it is sent. In a campaign without Triggered By, add the rule Published event matches event names to the business event that should react, next to the rule that already matches the input event.
One held event is pending per person and event name. Uploading the same file again is safe. A second future-dated row for that person and event is ignored until the first one is sent.
The hold follows the event name, not the job. Use a different name on each File Integration. Two integrations that name the same event both hold it, and the campaign can receive the event twice.
