University of Wisconsin–Madison
Center for Tobacco Research and Intervention (UW-CTRI)
Center for Tobacco Research and Intervention (UW-CTRI)
WISER Tobacco Cessation Study PID 42
Call Log Configuration
0
Generated Calls0
Completed Calls0
Logged Attempts0
Unique Callers0
Configured Types0
Dashboard Tabs
General Design Philosophy
The Call Log module is designed around the principles of native REDCap compatibility, automated lifecycle management, and transparent data persistence. Rather than acting as a black box or introducing custom external tables, the module operates directly within your project's existing structure so study teams maintain complete control, visibility, and native reporting access across every call:
Standard Instruments
Call Logs operate as standard REDCap instruments. The repeating
call_log form captures individual call attempts and notes, making data exportable and reportable via normal REDCap tools.
Automated Generation
Calls are generated automatically whenever possible: upon saving designated project forms or during the nightly cron evaluation based on study visit schedules and window rules.
Native Persistence
All tracking data is saved within REDCap itself—either in the repeating
call_log attempts or in call_log_metadata as a structured metadata JSON object. No custom tables are used.
Call Type Assumptions
Each call type operates on built-in lifecycle assumptions—evaluating milestone dates, visit sequences, indicator fields, or completion criteria to determine exactly when calls become active, expire, or complete.
Module Setup Progress
-
1. Deploy Call Log Instruments
Adds the two instruments needed by this module to your REDCap project. Thecall_logrepeating form is where callers record each individual call attempt (date/time, outcome, caller notes, etc.). Thecall_log_metadataform stores background tracking details and active call states.Pending -
2. Event Assignment & Repeatable Setup
Make sure thecall_logandcall_log_metadatainstruments are both assigned to only 1 event, and that thecall_loginstrument has been enabled as repeatable. (Because callers make multiple call attempts over time,call_logmust repeat so each attempt is saved separately;call_log_metadatashould stay non-repeating).Pending -
Pending
3. Select Generation Triggers
Generation Triggers generate calls for your participants. Choose which data entry forms should trigger call generation whenever staff save a form. (The automated daily cron also checks participants against your call rules each night). -
Pending
4. Define Unique Call Types
Set up the specific rules for the kinds of calls your study needs to make. You can create Reminders ahead of upcoming visits, Follow Ups after baseline visits, Missed / Cancelled Visit (MCV) calls when visits are missed, Need to Schedule (NTS) calls for due visits, and New Entry or Adhoc calls. -
Pending
5. Configure Dashboard Call Tabs
Organize how active calls appear to your team on the main Call List page. You can set up separate tabs for different caller queues, study visits, or priorities (such as "Recruitment", "Upcoming Reminders", or "Missed Visits"), and filter which call types show up on each tab.
Generation Triggers & Display Options
Select project data entry forms that should trigger automated call generation whenever saved by research staff.
Select project forms...
By default, generated calls appear starting the day after form save. Toggle this setting ON to present Missed/Cancelled Visit (MCV) and Need to Schedule (NTS) calls immediately on the same day.
Specify the date and time format for dates shown on the Call List dashboard (e.g. expiration dates, contact windows, call history). Uses standard PHP date format syntax.
Common tokens:
m (month 01-12), d (day 01-31), Y (year 2026), y (year 26), l (full day, e.g. Sunday), D (short day, e.g. Sun), F (full month, e.g. September), M (short month, e.g. Sep), g (12h 1-12), h (12h 01-12), H (24h 00-23), i (minutes 00-59), A (AM/PM), a (am/pm).
Select the REDCap field that contains the participant's name (e.g.
first_name, full_name, pt_name). When set, this value automatically displays in the standard Name column across all Call List tabs.
Choose which data entry instruments will render the interactive Call History widget, giving study staff quick access to caller notes and attempt history directly on participant records.
Select project forms...
Holiday Skip Rules
Holiday Skip Rules prevent automated call dates (such as Follow-up windows, Reminders, and Need to Schedule) from landing on days when staff are off. Calculated call dates that fall on enabled holidays or weekends automatically adjust to the preceding, or following, business day.
Standard US Holidays
Select standard holidays to observe for this project:
Custom Site Closures & Institutional Holidays
Add custom annual site closures (use MM-DD format, e.g. 12-26 for Day After Christmas or 11-03 for Staff Day):
Subject Withdrawal Conditions
Configure conditions under which subjects are permanently excluded from the call log. A subject is considered withdrawn when any specified event/field combination contains a truthy value (e.g., checked checkbox, non-zero number, or non-empty date).
Row Expansion Area Fields
Specify which project fields are displayed when callers click to expand a participant row on the Call List dashboard (e.g., alternate phone numbers, preferred call times, or secondary contact names).
Define the unique call rules that govern your study outreach queues. Each call type represents a distinct contact protocol—such as welcoming new participants, sending appointment reminders, conducting windowed follow-ups, re-engaging missed visits, scheduling milestone encounters, or handling adhoc calls.
Multi-Event Architecture: For longitudinal projects, call types configured across multiple events are automatically scoped by event (e.g.
call_id|event_name), allowing each study visit to maintain its own independent schedule, calling window, attempt history, and completion status.
Unique Call Types
min
Purpose: Designed for initial participant outreach, screening welcomes, or intake onboarding calls upon study registration.
How it works: Triggers automatically when a new participant record is created or imported (while call metadata is empty). If conditional logic is specified, the call is only created if the logic evaluates to true for that participant. The call remains active on dashboard queues until completed by a caller, or until the configured number of expiration days elapses (leave blank if calls should never expire; enter
0 to expire the same day created). Call List tabs containing New Entry calls automatically display an Expiration column showing the exact date and days remaining (or No Expiration if left blank).
Leave blank to never expire.
Only creates this call if the REDCap logic evaluates to true (e.g.
[location] = '1'). Leave blank to generate unconditionally.
Purpose: Pre-visit appointment reminders to ensure participant attendance and preparation.
How it works: Monitors the configured appointment date field across selected events. Using study holiday and weekend rules, it calculates the call window start date (
Appointment Date - Days Before). The call stays hidden until that window opens. If the reminder is open (not completed) and the appointment date arrives or passes, the call is marked expired. If the appointment date is cleared before any calls are logged, the reminder is removed; if calls were already logged, it completes to preserve history.
Select Events...
Purpose: Post-encounter check-ins, adverse event tracking, or survey administration that must occur within an eligibility window relative to an anchor date.
How it works: Watches the configured Anchor Date Field on each selected event. It calculates a calling window starting
Anchor Date + Days After Date and ending after the configured window length. Tabs containing Follow Up calls automatically display Start Calling and Complete By columns. If auto-remove is enabled, calls automatically expire once the window closes.
Select Events...
Purpose: Rapid outreach for participants who missed, cancelled, or no-showed an appointment.
How it works: Monitors the appointment date field and designated indicator field. A call generates if the missed/cancelled indicator is flagged, or automatically if the appointment date has passed without the indicator being set (where the indicator flags attendance). By default, calls appear starting the day after the missed visit (giving clinics time to reschedule), unless same-day display is enabled. When attendance is confirmed or the missed flag is cleared, the call automatically completes.
Select Events...
Purpose: Scheduling milestone study encounters as participants progress sequentially through protocol events.
How it works: Evaluates the chronological event sequence in your project. When a prior milestone event has its attendance indicator flagged truthy, but the subsequent target event does not yet have an appointment scheduled, an NTS call is automatically generated for that target event. It appears next day (or same day if enabled), and auto-completes immediately once staff enter a date into the target appointment date field.
Select Events...
Purpose: Unplanned, participant-initiated, or ad-hoc outreach (e.g. medication questions, coordinator callbacks, lost-to-followup re-engagement).
How it works: Created manually by study team members via the New Adhoc Call button or programmatically via the external API (
action: newAdhoc). Callers can schedule a future callback date/time, which keeps the call hidden until that time arrives. Tabs with adhoc calls show dedicated Reason and Preferred Callback columns.
Format:
code, Label Name (one reason per line).
Purpose: Protocol-mandated remote phone encounters (e.g. 6-month phone check-ins) where call notes are logged directly during encounter checkout.
How it works: Generates when a designated visit indicator field is marked truthy. The visit indicator is typically a "Digital check-in" field or form completion used to generate the log. If an optional auto-remove date field is configured, the call will automatically expire when that date passes; otherwise it completes when logged by staff.
Select Events...
Call Script
Rich Text
Rich text talking points, questions, and protocol reminders displayed to callers. Supports custom tags, smart variables, and piping.
Script Piping & Tag Reference Guide
Custom Call Log Tags (
{{variable}})
| Tag | Description |
|---|---|
{{participant_name}} |
Participant's full name from configured display field |
{{call_name}} |
Call type display name (e.g. Baseline Follow-up) |
{{call_date}} / {{call_time}} |
Target appointment or scheduled date & time |
{{expected_duration}} |
Expected duration in minutes (e.g. 30) |
{{attempt_num}} |
Ordinal attempt number for active call (e.g. 1st, 2nd) |
{{reason}} |
Selected reason description for adhoc calls |
REDCap Piping & Smart Variables
| Syntax | Description |
|---|---|
[user-fullname] |
Logged-in REDCap user's full name |
[record-name] |
Current participant record identifier |
[event-name] |
Current event label or arm identifier |
[project-id] |
REDCap Project ID number |
[field_name] |
Any field piped from the participant's record |
Tip: Use the rich text toolbar to format talking points with bold text, bulleted lists, and colors for critical questions.
Configure segmented tabs for the main Call List dashboard. Each tab presents specific call types and custom participant fields.
Dashboard Call Tabs
Tab #1
Select Call IDs...
Filters participant records displayed on this tab using REDCap-style conditional logic (e.g.
[location] = '1'). Leave blank to display all records matching the included call types.
Auto-Included Columns for Selected Call Types (0):
Custom Display Fields for Tab
Add custom record fields to present as additional table columns on this dashboard tab.
How to Navigate to the Call Log
Places a dedicated Call Log button directly on each participant's Record Home page next to the record action menu. This gives study staff a fast, one-click shortcut into the call log without needing to locate the instrument in the event grid or sidebar.
Controls whether the
call_log instrument is listed in REDCap's left sidebar and the Record Home event grid. When turned off, the instrument is hidden from routine navigation so staff enter calls through the Record Home button above or the main Call List dashboard.
Controls whether the internal
call_log_metadata instrument is displayed in REDCap menus and record tables.
Note: Default is hidden. This instrument stores internal tracking metadata and call history as JSON. It should remain hidden during normal study operations, but can be enabled for debugging, auditing data, or troubleshooting specific records.
Call Log Features
You are free to customize and extend the Call Log instrument in REDCap's Online Designer by adding survey items, participant checklists, or custom notes fields.
However, certain core variables (such as
call_id, call_template, timestamps, call_outcome, and call_notes) are native to the Call Log module and required for attempt tracking and call history.
Renders an interactive stopwatch widget positioned directly below the participant call history table while on a call. Callers can start, pause, resume, and record call durations in real time, with automatic state preservation when switching between call tabs.
Displays selected participant contact fields at the top of the Call Log. Suggested fields are detected from phone-related field names, labels, or phone validation; only text fields are suggested.
No fields selected. Add a suggested field below to show it in the banner.
Native Call Log Fields Reference
26 fields
Preserves custom fields
| # | Field Label | Variable Name | Type | Role | Visibility |
|---|---|---|---|---|---|
| 1 | Call Template | call_template |
Dropdown | Native Required | Hidden |
| 2 | Call ID | call_id |
Text | Native Required | Hidden |
| 3 | Call Event | call_event_name |
Text | Core Native | Hidden |
| 4 | Call Attempt | call_attempt |
Text | Native Required | Hidden |
| 5 | Call Open Date | call_open_date |
Date (@TODAY) | Native Required | Hidden |
| 6 | Call Open Time | call_open_time |
Time (@NOW) | Native Required | Hidden |
| 7 | Call Open Datetime | call_open_datetime |
Datetime (@NOW) | Native Required | Hidden |
| 8 | Call Open User | call_open_user |
Text (@USERNAME) | Native Required | Hidden |
| 9 | Call Open User Full Name | call_open_user_full_name |
Text | Native Required | Hidden |
| 10 | Call Log Title Header | call_hdr_title |
Descriptive | Structure / UI | Visible |
| 11 | Call Details Header | call_hdr_details |
Descriptive | Structure / UI | Visible |
| 12 | Call Info Summary Table | call_hdr_call_info_table |
Descriptive | Structure / UI | Visible |
| 13 | Call Script Header | call_hdr_script |
Descriptive | Structure / UI | Visible |
| 14 | Call Script Dynamic Display | call_script |
Descriptive | Dynamic Script | Visible |
| 15 | Subject Answered phone | call_answered |
Checkbox | Core Native | Visible |
| 16 | Phone Disconnected / Not in Service | call_disconnected |
Checkbox | Core Native | Visible |
| 17 | Disconnected Notice Alert | call_text_disconnect |
Descriptive | Advisory Notice | Conditional |
| 18 | Left a Message | call_left_message |
Checkbox | Core Native | Conditional |
| 19 | Set Callback | call_requested_callback |
Checkbox | Core Native | Visible |
| 20 | Callback Requested by | call_callback_requested_by |
Radio | Core Native | Conditional |
| 21 | Callback Date | call_callback_date |
Date (@TOMORROWBUTTON) | Core Native | Conditional |
| 22 | Callback Time | call_callback_time |
Time (@HIDEBUTTON) | Core Native | Conditional |
| 23 | Call Log Outcome | call_outcome |
Radio | Native Required | Visible |
| 24 | Task(s) Remaining | call_task_remaining |
Checkbox | Core Native | Conditional |
| 25 | Call Notes | call_notes |
Notes | Native Required | Visible |
| 26 | End Of Call Log Footer | call_hdr_end |
Descriptive | Structure / UI | Visible |
Timeframe:
Crunching report analytics & caller stats...
Logged Attempts
0
Call instances logged
Completed Calls
0
Expired Reminders
0
Passed without outreach
Hourly Cron Health
Active
Caller Productivity & Effort
| Team Member | Attempts | Completed | Success Rate | Voicemails | Callbacks Set |
|---|---|---|---|---|---|
| No call attempts or completions logged for this timeframe. | |||||
|
|
|
||||
Queue Status Distribution
Active / Open
Completed
Expired
Average Attempts per Call:
Breakdown by Call Template
| Template | Active | Done | Expired |
|---|---|---|---|
Automation & Cron Diagnostics
Background lifecycle health
Hourly Temporal Lifecycle Cron
Expiring reminders, attendance-based MCV completions, and new record intake.
Last Execution:
Execution Duration:
Records Evaluated / Updated:
Daily Synchronization & Audit Cron
Comprehensive sweep of all templates across every project record.
Last Execution:
Execution Duration:
Records Evaluated / Generated:
Recent Automation Activity Log
| Timestamp | Record | Action | Call / Description |
|---|---|---|---|
| No recent system automation logs recorded. | |||
|
Faux REDCap External Module Showcase Harness (Non-affiliated emulation environment)
|
REDCap 17.4.0 - © 2026 Vanderbilt University |


