Custom Actions Reference
Authoritative specifications for FlutterFlow custom actions, local state management, and Supabase RPC invocations.
Custom Actions Reference
FlutterFlow Custom Actions provide the execution bridge between the Flutter UI runtime, local reactive state (FFAppState), and Supabase PostgreSQL. Attendrix implements 51 custom actions located in lib/custom_code/actions/.
Action Inventory
| Action Name | Source File | Return Type | Parameters |
|---|---|---|---|
calculateProjectedAttendance | calculate_projected_attendance.dart | Future<AttendanceCalculatorDataStruct> | 4 |
calculateWalkRoute | calculate_walk_route.dart | Future<RouteResultStruct> | 4 |
cancelClass | cancel_class.dart | Future<FeedbackStruct> | 2 |
checkForUpdates | check_for_updates.dart | Future<bool> | 4 |
combineEnrolledCourses | combine_enrolled_courses.dart | Future<List<EnrolledCourseStruct>> | 3 |
completeCourseEnrollment | complete_course_enrollment.dart | Future<FeedbackStruct> | 1 |
completeUserOnboarding | complete_user_onboarding.dart | Future<bool> | 7 |
connectGoogleCalendar | connect_google_calendar.dart | Future<void> | 0 |
convertPathToUploadedFile | convert_path_to_uploaded_file.dart | Future<FFUploadedFile> | 1 |
deleteUserAccount | delete_user_account.dart | Future<bool> | 3 |
Function | execute_schedule_query.dart | Future<T> | 4 |
generateDateRange | generate_date_range.dart | Future<List<DateTime>> | 3 |
generateGreeting | generate_greeting.dart | Future<String> | 6 |
generatePastDateRange | generate_past_date_range.dart | Future<List<DateTime>> | 3 |
generateTimeline | generate_timeline.dart | Future<List<DateTime>> | 3 |
generateUsername | generate_username.dart | Future<String> | 1 |
getCampusBuildingData | get_campus_building_data.dart | Future<CampusBuildingStruct?> | 2 |
getCoreCourses | get_core_courses.dart | Future<List<CoreCourseStruct>> | 1 |
getElectiveCourses | get_elective_courses.dart | Future<List<ElectiveCourseStruct>> | 1 |
getElectiveRequirementsList | get_elective_requirements_list.dart | Future<List<String>> | 2 |
getLabCourses | get_lab_courses.dart | Future<List<EnrolledCourseStruct>> | 1 |
getNextBusInfo | get_next_bus_info.dart | Future<RouteResultStruct> | 2 |
hasLocationPermission | has_location_permission.dart | Future<bool> | 0 |
hasPushPermission | has_push_permission.dart | Future<bool> | 0 |
initOneSignal | init_one_signal.dart | Future<void> | 0 |
isRollNumberUnique | is_roll_number_unique.dart | Future<bool> | 3 |
isUsernameAvailable | is_username_available.dart | Future<bool> | 1 |
linkOneSignalUser | link_one_signal_user.dart | Future<void> | 3 |
loadAppBootstrapStatus | load_app_bootstrap_status.dart | Future<AppBootstrapStruct> | 1 |
loadLatestApod | load_latest_apod.dart | Future<ApodStruct> | 0 |
loadUserProfile | load_user_profile.dart | Future<UserProfileStruct> | 0 |
logOutUser | log_out_user.dart | Future<void> | 0 |
loginOneSignalUser | login_one_signal_user.dart | Future<void> | 1 |
logoutOneSignalUser | logout_one_signal_user.dart | Future<void> | 0 |
markAbsent | mark_absent.dart | Future<MarkAbsentResponseStruct> | 3 |
openSyllabusPdf | open_syllabus_pdf.dart | Future<bool> | 1 |
optInPushNotifications | opt_in_push_notifications.dart | Future<void> | 0 |
optOutPushNotifications | opt_out_push_notifications.dart | Future<void> | 0 |
parseRollNumber | parse_roll_number.dart | Future<RollNumberDetailsStruct> | 1 |
recordWalkingTripAction | record_walking_trip_action.dart | Future<bool> | 7 |
reportClassCancelled | report_class_cancelled.dart | Future<bool> | 1 |
rescheduleClass | reschedule_class.dart | Future<FeedbackStruct> | 4 |
resetUserAttendance | reset_user_attendance.dart | Future<bool> | 2 |
restoreClass | restore_class.dart | Future<FeedbackStruct> | 1 |
scheduleClass | schedule_class.dart | Future<FeedbackStruct> | 6 |
Function | sync_app_data.dart | Future<T> | 4 |
syncNowGoogleCalendar | sync_now_google_calendar.dart | Future<bool> | 0 |
loadFromStorage | sync_routing_dataset.dart | Future<bool> | 0 |
unMarkAbsent | un_mark_absent.dart | Future<MarkAbsentResponseStruct> | 1 |
initializeAndroidWidgetBridge | update_android_widget_from_app_state.dart | Future<void> | 0 |
updateUserPreferences | update_user_preferences.dart | Future<bool> | 1 |
Core Architectural Actions
markAbsent
File: lib/custom_code/actions/mark_absent.dart
Return Type: Future<MarkAbsentResponseStruct>
| Field / Prop | Type | Default | Description |
|---|---|---|---|
classDatarequired | ScheduledClassStruct | — | Input parameter `classData` of type `ScheduledClassStruct`. |
sourcerequired | String | — | Input parameter `source` of type `String`. |
reason | String? | — | Input parameter `reason` of type `String?`. |
unMarkAbsent
File: lib/custom_code/actions/un_mark_absent.dart
Return Type: Future<MarkAbsentResponseStruct>
| Field / Prop | Type | Default | Description |
|---|---|---|---|
classDatarequired | ScheduledClassStruct | — | Input parameter `classData` of type `ScheduledClassStruct`. |
calculateProjectedAttendance
File: lib/custom_code/actions/calculate_projected_attendance.dart
Return Type: Future<AttendanceCalculatorDataStruct>
| Field / Prop | Type | Default | Description |
|---|---|---|---|
enrolledCourse | EnrolledCourseStruct? | — | Input parameter `enrolledCourse` of type `EnrolledCourseStruct?`. |
addToAttended | int? | — | Input parameter `addToAttended` of type `int?`. |
addToSkip | int? | — | Input parameter `addToSkip` of type `int?`. |
actionTone | ActionTone? | — | Input parameter `actionTone` of type `ActionTone?`. |
connectGoogleCalendar
File: lib/custom_code/actions/connect_google_calendar.dart
Return Type: Future<void>
This action accepts no input arguments.
calculateWalkRoute
File: lib/custom_code/actions/calculate_walk_route.dart
Return Type: Future<RouteResultStruct>
| Field / Prop | Type | Default | Description |
|---|---|---|---|
originrequired | LatLng | — | Input parameter `origin` of type `LatLng`. |
destinationrequired | LatLng | — | Input parameter `destination` of type `LatLng`. |
includeGeometryrequired | bool | — | Input parameter `includeGeometry` of type `bool`. |
targetArrivalTime | DateTime? | — | Input parameter `targetArrivalTime` of type `DateTime?`. |
initOneSignal
File: lib/custom_code/actions/init_one_signal.dart
Return Type: Future<void>
This action accepts no input arguments.
completeUserOnboarding
File: lib/custom_code/actions/complete_user_onboarding.dart
Return Type: Future<bool>
| Field / Prop | Type | Default | Description |
|---|---|---|---|
fullNamerequired | String | — | Input parameter `fullName` of type `String`. |
rollNumberrequired | String | — | Input parameter `rollNumber` of type `String`. |
departmentIdrequired | String | — | Input parameter `departmentId` of type `String`. |
batchIdrequired | String | — | Input parameter `batchId` of type `String`. |
currentSemesterrequired | int | — | Input parameter `currentSemester` of type `int`. |
username | String? | — | Input parameter `username` of type `String?`. |
bio | String? | — | Input parameter `bio` of type `String?`. |
Full Custom Action Catalog
cancelClass
File: lib/custom_code/actions/cancel_class.dart
Signature: Future<FeedbackStruct> cancelClass(String classId, String? reason)
| Field / Prop | Type | Default | Description |
|---|---|---|---|
classIdrequired | String | — | Parameter `classId` of type `String`. |
reason | String? | — | Parameter `reason` of type `String?`. |
checkForUpdates
File: lib/custom_code/actions/check_for_updates.dart
Signature: Future<bool> checkForUpdates(BuildContext context, { String? appVersion, bool showUpToDateToast = true, })
| Field / Prop | Type | Default | Description |
|---|---|---|---|
contextrequired | BuildContext | — | Parameter `context` of type `BuildContext`. |
appVersion | { String? | — | Parameter `appVersion` of type `{ String?`. |
truerequired | bool showUpToDateToast = | — | Parameter `true` of type `bool showUpToDateToast =`. |
}required | | — | Parameter `}` of type ``. |
combineEnrolledCourses
File: lib/custom_code/actions/combine_enrolled_courses.dart
Signature: Future<List<EnrolledCourseStruct>> combineEnrolledCourses(List<EnrolledCourseStruct>? coreCourses, List<EnrolledCourseStruct>? electives, List<EnrolledCourseStruct>? labs)
| Field / Prop | Type | Default | Description |
|---|---|---|---|
coreCourses | List<EnrolledCourseStruct>? | — | Parameter `coreCourses` of type `List<EnrolledCourseStruct>?`. |
electives | List<EnrolledCourseStruct>? | — | Parameter `electives` of type `List<EnrolledCourseStruct>?`. |
labs | List<EnrolledCourseStruct>? | — | Parameter `labs` of type `List<EnrolledCourseStruct>?`. |
completeCourseEnrollment
File: lib/custom_code/actions/complete_course_enrollment.dart
Signature: Future<FeedbackStruct> completeCourseEnrollment(List<EnrolledCourseStruct> enrolledCourses)
| Field / Prop | Type | Default | Description |
|---|---|---|---|
enrolledCoursesrequired | List<EnrolledCourseStruct> | — | Parameter `enrolledCourses` of type `List<EnrolledCourseStruct>`. |
convertPathToUploadedFile
File: lib/custom_code/actions/convert_path_to_uploaded_file.dart
Signature: Future<FFUploadedFile> convertPathToUploadedFile(String imageUrl)
| Field / Prop | Type | Default | Description |
|---|---|---|---|
imageUrlrequired | String | — | Parameter `imageUrl` of type `String`. |
deleteUserAccount
File: lib/custom_code/actions/delete_user_account.dart
Signature: Future<bool> deleteUserAccount({ required String username, required String password, })
| Field / Prop | Type | Default | Description |
|---|---|---|---|
usernamerequired | { required String | — | Parameter `username` of type `{ required String`. |
passwordrequired | required String | — | Parameter `password` of type `required String`. |
}required | | — | Parameter `}` of type ``. |
Function
File: lib/custom_code/actions/execute_schedule_query.dart
Signature: Future<T> Function() rpcCall, { Duration timeout = const Duration(seconds: 8), int maxRetries = 1, })
| Field / Prop | Type | Default | Description |
|---|---|---|---|
rpcCallrequired | ) | — | Parameter `rpcCall` of type `)`. |
8)required | { Duration timeout = const Duration(seconds: | — | Parameter `8)` of type `{ Duration timeout = const Duration(seconds:`. |
1required | int maxRetries = | — | Parameter `1` of type `int maxRetries =`. |
}required | | — | Parameter `}` of type ``. |
generateDateRange
File: lib/custom_code/actions/generate_date_range.dart
Signature: Future<List<DateTime>> generateDateRange(DateTime startDate, DateRange dateRange, WeekendPolicy weekendPolicy)
| Field / Prop | Type | Default | Description |
|---|---|---|---|
startDaterequired | DateTime | — | Parameter `startDate` of type `DateTime`. |
dateRangerequired | DateRange | — | Parameter `dateRange` of type `DateRange`. |
weekendPolicyrequired | WeekendPolicy | — | Parameter `weekendPolicy` of type `WeekendPolicy`. |
generateGreeting
File: lib/custom_code/actions/generate_greeting.dart
Signature: Future<String> generateGreeting(String? username, String toneString, List<ScheduledClassStruct>? classes, List<String>? recentHistory, bool? useScheduleClasses, bool? useActionTone)
| Field / Prop | Type | Default | Description |
|---|---|---|---|
username | String? | — | Parameter `username` of type `String?`. |
toneStringrequired | String | — | Parameter `toneString` of type `String`. |
classes | List<ScheduledClassStruct>? | — | Parameter `classes` of type `List<ScheduledClassStruct>?`. |
recentHistory | List<String>? | — | Parameter `recentHistory` of type `List<String>?`. |
useScheduleClasses | bool? | — | Parameter `useScheduleClasses` of type `bool?`. |
useActionTone | bool? | — | Parameter `useActionTone` of type `bool?`. |
generatePastDateRange
File: lib/custom_code/actions/generate_past_date_range.dart
Signature: Future<List<DateTime>> generatePastDateRange(DateTime startDate, DateRange dateRange, WeekendPolicy weekendPolicy)
| Field / Prop | Type | Default | Description |
|---|---|---|---|
startDaterequired | DateTime | — | Parameter `startDate` of type `DateTime`. |
dateRangerequired | DateRange | — | Parameter `dateRange` of type `DateRange`. |
weekendPolicyrequired | WeekendPolicy | — | Parameter `weekendPolicy` of type `WeekendPolicy`. |
generateTimeline
File: lib/custom_code/actions/generate_timeline.dart
Signature: Future<List<DateTime>> generateTimeline(DateTime selectedDate, List<DateTime>? startTimes, List<DateTime>? endTimes)
| Field / Prop | Type | Default | Description |
|---|---|---|---|
selectedDaterequired | DateTime | — | Parameter `selectedDate` of type `DateTime`. |
startTimes | List<DateTime>? | — | Parameter `startTimes` of type `List<DateTime>?`. |
endTimes | List<DateTime>? | — | Parameter `endTimes` of type `List<DateTime>?`. |
generateUsername
File: lib/custom_code/actions/generate_username.dart
Signature: Future<String> generateUsername(String? selectedGenre)
| Field / Prop | Type | Default | Description |
|---|---|---|---|
selectedGenre | String? | — | Parameter `selectedGenre` of type `String?`. |
getCampusBuildingData
File: lib/custom_code/actions/get_campus_building_data.dart
Signature: Future<CampusBuildingStruct?> getCampusBuildingData(String? buildingId, DateTime? startTime)
| Field / Prop | Type | Default | Description |
|---|---|---|---|
buildingId | String? | — | Parameter `buildingId` of type `String?`. |
startTime | DateTime? | — | Parameter `startTime` of type `DateTime?`. |
getCoreCourses
File: lib/custom_code/actions/get_core_courses.dart
Signature: Future<List<CoreCourseStruct>> getCoreCourses(String batchId)
| Field / Prop | Type | Default | Description |
|---|---|---|---|
batchIdrequired | String | — | Parameter `batchId` of type `String`. |
getElectiveCourses
File: lib/custom_code/actions/get_elective_courses.dart
Signature: Future<List<ElectiveCourseStruct>> getElectiveCourses(String batchId)
| Field / Prop | Type | Default | Description |
|---|---|---|---|
batchIdrequired | String | — | Parameter `batchId` of type `String`. |
getElectiveRequirementsList
File: lib/custom_code/actions/get_elective_requirements_list.dart
Signature: Future<List<String>> getElectiveRequirementsList(String batchId, int semesterNumber)
| Field / Prop | Type | Default | Description |
|---|---|---|---|
batchIdrequired | String | — | Parameter `batchId` of type `String`. |
semesterNumberrequired | int | — | Parameter `semesterNumber` of type `int`. |
getLabCourses
File: lib/custom_code/actions/get_lab_courses.dart
Signature: Future<List<EnrolledCourseStruct>> getLabCourses(String batchId)
| Field / Prop | Type | Default | Description |
|---|---|---|---|
batchIdrequired | String | — | Parameter `batchId` of type `String`. |
getNextBusInfo
File: lib/custom_code/actions/get_next_bus_info.dart
Signature: Future<RouteResultStruct> getNextBusInfo(List<BusRouteStruct>? routes, LatLng? userLocation)
| Field / Prop | Type | Default | Description |
|---|---|---|---|
routes | List<BusRouteStruct>? | — | Parameter `routes` of type `List<BusRouteStruct>?`. |
userLocation | LatLng? | — | Parameter `userLocation` of type `LatLng?`. |
hasLocationPermission
File: lib/custom_code/actions/has_location_permission.dart
Signature: Future<bool> hasLocationPermission()
hasPushPermission
File: lib/custom_code/actions/has_push_permission.dart
Signature: Future<bool> hasPushPermission()
isRollNumberUnique
File: lib/custom_code/actions/is_roll_number_unique.dart
Signature: Future<bool> isRollNumberUnique(String? rollNumber, { String? excludeUserId, })
| Field / Prop | Type | Default | Description |
|---|---|---|---|
rollNumber | String? | — | Parameter `rollNumber` of type `String?`. |
excludeUserId | { String? | — | Parameter `excludeUserId` of type `{ String?`. |
}required | | — | Parameter `}` of type ``. |
isUsernameAvailable
File: lib/custom_code/actions/is_username_available.dart
Signature: Future<bool> isUsernameAvailable(String username)
| Field / Prop | Type | Default | Description |
|---|---|---|---|
usernamerequired | String | — | Parameter `username` of type `String`. |
linkOneSignalUser
File: lib/custom_code/actions/link_one_signal_user.dart
Signature: Future<void> linkOneSignalUser(String? supabaseUserId, String? email, String? batchId)
| Field / Prop | Type | Default | Description |
|---|---|---|---|
supabaseUserId | String? | — | Parameter `supabaseUserId` of type `String?`. |
email | String? | — | Parameter `email` of type `String?`. |
batchId | String? | — | Parameter `batchId` of type `String?`. |
loadAppBootstrapStatus
File: lib/custom_code/actions/load_app_bootstrap_status.dart
Signature: Future<AppBootstrapStruct> loadAppBootstrapStatus(String? storedVersionId)
| Field / Prop | Type | Default | Description |
|---|---|---|---|
storedVersionId | String? | — | Parameter `storedVersionId` of type `String?`. |
loadLatestApod
File: lib/custom_code/actions/load_latest_apod.dart
Signature: Future<ApodStruct> loadLatestApod()
loadUserProfile
File: lib/custom_code/actions/load_user_profile.dart
Signature: Future<UserProfileStruct> loadUserProfile()
logOutUser
File: lib/custom_code/actions/log_out_user.dart
Signature: Future<void> logOutUser()
loginOneSignalUser
File: lib/custom_code/actions/login_one_signal_user.dart
Signature: Future<void> loginOneSignalUser(String? userId)
| Field / Prop | Type | Default | Description |
|---|---|---|---|
userId | String? | — | Parameter `userId` of type `String?`. |
logoutOneSignalUser
File: lib/custom_code/actions/logout_one_signal_user.dart
Signature: Future<void> logoutOneSignalUser()
openSyllabusPdf
File: lib/custom_code/actions/open_syllabus_pdf.dart
Signature: Future<bool> openSyllabusPdf(String? syllabusPath)
| Field / Prop | Type | Default | Description |
|---|---|---|---|
syllabusPath | String? | — | Parameter `syllabusPath` of type `String?`. |
optInPushNotifications
File: lib/custom_code/actions/opt_in_push_notifications.dart
Signature: Future<void> optInPushNotifications()
optOutPushNotifications
File: lib/custom_code/actions/opt_out_push_notifications.dart
Signature: Future<void> optOutPushNotifications()
parseRollNumber
File: lib/custom_code/actions/parse_roll_number.dart
Signature: Future<RollNumberDetailsStruct> parseRollNumber(String rollNumber)
| Field / Prop | Type | Default | Description |
|---|---|---|---|
rollNumberrequired | String | — | Parameter `rollNumber` of type `String`. |
recordWalkingTripAction
File: lib/custom_code/actions/record_walking_trip_action.dart
Signature: Future<bool> recordWalkingTripAction(String originNodeId, String destinationNodeId, DateTime startedAt, DateTime arrivedAt, double? distanceMeters, int gpsFixCount, double? avgAccuracyMeters)
| Field / Prop | Type | Default | Description |
|---|---|---|---|
originNodeIdrequired | String | — | Parameter `originNodeId` of type `String`. |
destinationNodeIdrequired | String | — | Parameter `destinationNodeId` of type `String`. |
startedAtrequired | DateTime | — | Parameter `startedAt` of type `DateTime`. |
arrivedAtrequired | DateTime | — | Parameter `arrivedAt` of type `DateTime`. |
distanceMeters | double? | — | Parameter `distanceMeters` of type `double?`. |
gpsFixCountrequired | int | — | Parameter `gpsFixCount` of type `int`. |
avgAccuracyMeters | double? | — | Parameter `avgAccuracyMeters` of type `double?`. |
reportClassCancelled
File: lib/custom_code/actions/report_class_cancelled.dart
Signature: Future<bool> reportClassCancelled(String? classId)
| Field / Prop | Type | Default | Description |
|---|---|---|---|
classId | String? | — | Parameter `classId` of type `String?`. |
rescheduleClass
File: lib/custom_code/actions/reschedule_class.dart
Signature: Future<FeedbackStruct> rescheduleClass(String classId, DateTime scheduledStart, DateTime scheduledEnd, String? venue)
| Field / Prop | Type | Default | Description |
|---|---|---|---|
classIdrequired | String | — | Parameter `classId` of type `String`. |
scheduledStartrequired | DateTime | — | Parameter `scheduledStart` of type `DateTime`. |
scheduledEndrequired | DateTime | — | Parameter `scheduledEnd` of type `DateTime`. |
venue | String? | — | Parameter `venue` of type `String?`. |
resetUserAttendance
File: lib/custom_code/actions/reset_user_attendance.dart
Signature: Future<bool> resetUserAttendance(String? userId, String? password)
| Field / Prop | Type | Default | Description |
|---|---|---|---|
userId | String? | — | Parameter `userId` of type `String?`. |
password | String? | — | Parameter `password` of type `String?`. |
restoreClass
File: lib/custom_code/actions/restore_class.dart
Signature: Future<FeedbackStruct> restoreClass(String classId)
| Field / Prop | Type | Default | Description |
|---|---|---|---|
classIdrequired | String | — | Parameter `classId` of type `String`. |
scheduleClass
File: lib/custom_code/actions/schedule_class.dart
Signature: Future<FeedbackStruct> scheduleClass(String courseId, DateTime scheduledStart, DateTime scheduledEnd, String? venue, bool isExtraClass, bool isPlusSlot)
| Field / Prop | Type | Default | Description |
|---|---|---|---|
courseIdrequired | String | — | Parameter `courseId` of type `String`. |
scheduledStartrequired | DateTime | — | Parameter `scheduledStart` of type `DateTime`. |
scheduledEndrequired | DateTime | — | Parameter `scheduledEnd` of type `DateTime`. |
venue | String? | — | Parameter `venue` of type `String?`. |
isExtraClassrequired | bool | — | Parameter `isExtraClass` of type `bool`. |
isPlusSlotrequired | bool | — | Parameter `isPlusSlot` of type `bool`. |
Function
File: lib/custom_code/actions/sync_app_data.dart
Signature: Future<T> Function() dbCall, { Duration timeout = const Duration(seconds: 8), int maxRetries = 2, })
| Field / Prop | Type | Default | Description |
|---|---|---|---|
dbCallrequired | ) | — | Parameter `dbCall` of type `)`. |
8)required | { Duration timeout = const Duration(seconds: | — | Parameter `8)` of type `{ Duration timeout = const Duration(seconds:`. |
2required | int maxRetries = | — | Parameter `2` of type `int maxRetries =`. |
}required | | — | Parameter `}` of type ``. |
syncNowGoogleCalendar
File: lib/custom_code/actions/sync_now_google_calendar.dart
Signature: Future<bool> syncNowGoogleCalendar()
loadFromStorage
File: lib/custom_code/actions/sync_routing_dataset.dart
Signature: Future<bool> loadFromStorage()
initializeAndroidWidgetBridge
File: lib/custom_code/actions/update_android_widget_from_app_state.dart
Signature: Future<void> initializeAndroidWidgetBridge()
updateUserPreferences
File: lib/custom_code/actions/update_user_preferences.dart
Signature: Future<bool> updateUserPreferences(UserPreferencesStruct? userPrefs)
| Field / Prop | Type | Default | Description |
|---|---|---|---|
userPrefs | UserPreferencesStruct? | — | Parameter `userPrefs` of type `UserPreferencesStruct?`. |
Was this page helpful?
Your feedback directly guides the engineering documentation roadmap.