Skip to main content
Campaign reports give you a per-customer breakdown of every message sent in a sendout — including delivery timestamps, engagement actions, and any errors. Download the CSV from the Connectly UI or retrieve it programmatically via the Reports API.

Downloading from the UI

Open your campaign in the Connectly UI, navigate to the Analytics tab, and click Download CSV. The file downloads immediately.

Column reference

Each row represents a single customer in the sendout. Columns always appear in this order.
ColumnDescriptionExample
customer_external_idCustomer’s external ID (typically their phone number).+123456789
business_idYour Connectly business UUID.2d503e81-e270-4467-a05f-21a900efbbc1
campaign_nameName of the campaign.Test campaign
sendout_idUUID of the sendout this message belongs to.d69ed06c-5385-4003-aa58-aae87f2e087e
cnt_session_idConnectly session identifier for this conversation.018f6423-fa75-de08-9f61-59a8526eb5c0
sent_atTimestamp when the message was sent.2024-05-10 20:13:50.682000
delivered_atTimestamp when the message was delivered to the device.2024-05-10 20:13:50.682000
read_atTimestamp when the message was read.2024-05-10 20:13:50.682000
opt_out_atTimestamp when the customer opted out.2024-05-10 20:13:50.682000
error_codeError code if the message was undeliverable.131026
error_msgHuman-readable error description.Message Undeliverable.
button_clicksJSON array of button interactions — each with id, name, and ts.{"id":"f2390b","name":"Yes","ts":"2024-07-16 12:11:03.609000"}
link_clicksJSON array of link click events — each with id, name, and ts.{"id":"41e753","name":"Click here","ts":"2024-07-16 12:12:03.609000"}
input_variablesJSON object of variables injected at send time.{"name":"Ana"}
output_variablesJSON object of variables captured from the customer’s replies.{"replied":true}
Timestamp columns (sent_at, delivered_at, read_at, opt_out_at) are blank when the event hasn’t occurred yet. For example, read_at is empty if the customer hasn’t opened the message.

Understanding the engagement columns

button_clicks — populated when a customer taps a quick-reply or call-to-action button. Each entry records the button’s id, display name, and click timestamp ts. link_clicks — populated when a customer taps a tracked URL. Same structure as button_clicks. input_variables / output_variables — only populated for campaigns using variables or automation logic. input_variables reflects values injected at send time; output_variables captures data collected from the customer’s replies during the conversation flow.

Programmatic access

To retrieve reports automatically — for example to ingest them into a data warehouse on a schedule — use the Reports API or subscribe to report webhooks.