Configure the API-Based Punches Import Integration
This topic describes how to configure this integration.
Tip: For an overview of API-based integrations and example APIs, see API-Based Integrations.
Before you start
Deploy the API-PunchImport integration pack; see Deploy Integrations.
Configure the integration

-
Open the Integration Template Designer: Select Main Menu
> Administration > Application Setup > Integrations Setup > Design Integration Templates. Note: If prompted, enter your Username and Password. Click Tap Log in.
- Select the Manage tab > Atom Management.
- Select your environment.

- In Administration, click tap Environment Extensions.
- In Process Filter, click tap the magnifying glass
. It can take several seconds before the button becomes active.
- Scroll to and select the integration pack: API-PunchImport > API-PunchImport.
Caution: If you select Use Default for the connection settings and process properties, ensure that Value is blank. If Value is not blank, that value overrides the default value whether or not Use Default is selected or cleared. Example: If the default value is abc, but Value shows xyz, the integration uses xyz regardless of the setting of Use Default.

- Select Connection Settings.
-
From the Connection dropdown list, select and configure:
Connection Settings Setting Required Actions APIGatewayServer Required Select URL. AuthenticationServer Required Select URL. PunchImportWSSListenerOperation Not required Select Object.

- Select Process Properties.
- Select AuthenticationProperties to define properties to connect to the authentication server and get the access token to execute APIs.
- From the Process Property dropdown list, select API-PunchImport_CRTConfig to define headers in cross-reference tables.
Cross-reference tables (CRT) are the look-up tables that the integrations use to translate parameter values. One or more data values from the source system can be used to assign one or more parameters in the destination system.
Caution: The Boomi™ application does not return default values for cross-reference table headers. You have to enter the headings in Value.
Note: For details, see Configure cross-reference tables.
For each of the tables:
- Clear Use Default.
- In Value, enter the header column names, separated by commas (,) but no spaces, exactly as shown below the Value field. You can select and copy the headers from the screen, then paste them in the Value field.
- Repeat for the other tables.
-
Select DefaultProcessProperties to select the process properties that you want to use default values.
Clear DefaultEnableTransactionAssistant.
-
Select PunchImportTransactionAssistantProcessProperties.
Clear enableTransactionAssistant.
- Select RealTimePunchImport_ProcessProperties to set process properties that must be configured before the integration can run.
- FalconExecutionId
- ErrorMessage
- CallBackMessage
- ProcessStatus
- RunSummary
- Clear EnableTransactionAssistant (default).
- BatchName
- Select RunSinglePunch (default) to import punches The entries on a timecard that mark the beginning (in-punch) or end (out-punch) of a work interval, such as the beginning of a shift or transfer. from SinglePunchMap.
- Select RunDualPunch (default) to import punches from DualPunchMap.
- Select RunDualPunchPCE (default) to import punches and paycode A category of time or money that employees earn, for example, Regular Hours, Bonus, or Sick. edits from the DualPCE_PunchTotalCount.
- AmountType
- TimeFrameId
- Select CustomTransferProcessing (default) to form the organizational transfer path appending the Home Job to the path in the Account column of the output file.
- CreateRunSummary
- Select UpdateExistingPunches (default).
- If selected, the integration imports and replaces only updated punches from the input file.
- If cleared, the integration deletes all existing punches and imports the punches from the input file.
- API key
- PayCodeResponseLog
- HeaderValue
- RowValue
- APIErrorResponse
- APIResponseCode
- CallBackData
- Select RunSummaryIntegration to select the information to display in the run summary.
- Select RunSummaryStep to select the data to process for the run summary.
-
Select TransactionAssistantProcessProperties.
Clear EnableTransactionAssistant.

- Select Object Definitions.
- Do one of the following:
- Click Tap Choose Locked Fields for Profile
. Select the fields. Click Tap OK.
- For Content Root, click tap Choose Content Root for Profile
. Select the element. Click Tap OK.
- Click Tap Edit Aliases
. Select the field. Enter the new label. Repeat for other fields. Click Tap OK.
- Click Tap Edit User Defined Object Definition
. Edit the Name. Edit the Object Type. Select Selected Profiles. Click Tap OK.
- Click Tap Delete User Defined Object Definition
. Click Tap OK to confirm.
- Click Tap Choose Locked Fields for Profile

Caution: Before a cross-reference table can be downloaded when the integration is run, you must clear Use Default in Process Property > {ProcessName}_CRTConfig and enter the header names for each cross-reference table. If the header names are already in the field, copy them to the clipboard or a text file, delete the header names from the field, and paste the header names back into the field. Also, you must select Override in the steps that follow.
Cross-reference tables (CRT) are the look-up tables that the integrations use to translate parameter values. One or more data values from the source system can be used to assign one or more parameters in the destination system.
A cross-reference table (CRT) translates parameter values in an integration as follows:
- Organizes data values into rows and columns:
- Maximums = 20 columns, 10,000 rows.
- Can combine values from multiple columns to determine a single output value.
- If more than one row matches a reference value, the first match is the output value.
- If no match is found, the output value can be null, or the integration can produce errors.
-
Caution: For the cross-reference tables that you are customizing, make sure that Use Default is not selected in Process Properties > {ProcessName}_CRTConfig, and that the headers are defined.
- Select Cross Reference.
- From the Cross Reference dropdown list, select PunchImportTimezoneLookup. You cannot change the name of the table.
- To allow the tables to be downloaded when you run the integration, select Override.
-
Select Override to:
- Download the tables when you run the integration
- Edit the table cells in Extensions

(Optional)
A data map translates a data structure from the source format to the destination format. Examples: Map "PersonID" in the source to "Person ID" in the destination or "LastName" to "Last Name".
Each integration pack has a default data map. Editing of the default map is limited to adding fields, changing mappings, or inserting functions. Any changes override the previous values. If the predefined fields do not suite your requirements, use the default map as a guide when you create your custom data map.
Known issues
- The timecard collects punches from schedules which interfere with punch imports. Before importing punches, delete the schedules for the targeted employees and time periods.
- The timecard does not import break rule overrides, and these overrides break the timecard.
- Bad paycode IDs incorrectly trigger a system error rather than an API error.
- You cannot delete the first punch of a pair because it becomes a purple in-punch. Comments that are attached to these punches are not imported.
- A duplicate punch error incorrectly triggers a "duplicate comments not allowed” error.
Select a data map
- Select Data Maps.
-
From the Data Map dropdown list, select one of the following:
- DualPunchesPCECSV—DualPunchesPCECSV
- PunchCSV—PunchCSV
-
Select
to expand or
to collapse levels.
To expand all levels, right-click the green boxes icon
. Select Expand All
The lines show the links between fields in the source (left side), any intermediate functions, and the destination (right side).
-
(Optional)
Caution: The default mappings are developed and tested based on best practices. If you make changes, you may get unexpected results. Modify and test carefully.
- Change mappings — When you customize a default data map, you can add fields only to the end of the map.
You can select and drag to change the links between the source (left column), function (middle column), and destination (right column) items. A single source field can link to multiple destination fields, but a destination field can link to only one source field.
- Transform the data — A map can include intermediate functions that transform the data. Examples: Perform mathematical calculations on the values or get values from a cross-reference table.
Note: To override a field — for example because you cannot delete it from a default map — insert a function that has a null output.
- In Function, click tap the plus button
to add an intermediate function.
- From Category, select a category of functions:
String — Trim, add to, concatenate, replace, remove, split, or change the case of text.
Caution: Do not use special characters such as angle brackets (< or >) in data in cross-reference tables, data maps, and input files. These characters can make the integration fail.
Numeric — Perform mathematical calculations on the data.
Date — Change the format or get the current date.
Lookup — Get data from a cross-reference table (CRT), document cache, SQL query, or define a key-value change.
Connector — Call a value from a connector to an application or data source.
Custom Scripting — Transform data by way of Groovy or JavaScript code.
Properties — Get or set process or document properties.
- Select the function from the list in the selected category.
- Click Tap OK.
- If prompted in Configure Defaults, enter the relevant values. Select a Caching. Click Tap OK.
- Select and drag from a source field to an input of the function.
- Select and drag from the output of the function to a destination field.
- Repeat to add another function.
- In Function, click tap the plus button
- Change mappings — When you customize a default data map, you can add fields only to the end of the map.
- When you finish, click tap OK.

This section provides detailed information to help you to assess whether this integration meets your business needs.
Punch integrations must ensure that incoming punches are displayed and interpreted correctly in the timecard as In, Out, Type, or Missing. The pay rules and schedules that are assigned to the employees distribute the durations to the right accounts and paycodes.
All imports are bulk because the source file lists many employees each with multiple punches.
This integration pack contains the following integrations:
- Punches only:
- Punch with employee ID, punch date and time
- Punch with override type
- Punch with the override type derived from the relationship of the punch to other punches or the day divide Time that defines when one day ends and a new day begins. The day divide is defined in a pay rule. If a shift crosses the day divide, the pay rule defines how the hours are allocated: to the day before, the day after, or to the day on which the worked hour occurred.
- Punch with the override type derived from the account transfer of the punch
- Punches that are on the same row of the source file and that must be transformed into one row for each punch
- Punches with paycode edits:
- Non-canceling paycode edits
- Labor account transfers
- Work rule transfers
- Comments and notes
- Time zone, daylight savings
- Update existing punches with new attributes
- Filter out duplicate punches
Approaches to punch imports
-
Hands Off
Only the source file provides the punches. Upon import, the timecard sequences the punches based on date and time. However, interpretation and display of the punches is based on the pay rule and schedule.
If a punch is missing, the interpretation can be incorrect. Example:
This set of punches are interpreted as In Out In Out:
21003, 5/3/2016, 07:00
21003, 5/3/2016, 18:00,3100
21003, 5/3/2016, 19:00
21003, 5/3/2016, 21:00
A Missed Out Limit Rule of 10 Hours results in the following interpretation:
Example punch imports Date In Out Tues 5/03 7:00 am missing Tues 5/03 6:00 pm 7:00 pm Tues 5/03 9:00 pm missing A manager must manually override this interpretation if it is incorrect.
-
Override
Assign each punch a Type, or derive the Type from the punch sequence within each pair of punches or by the punch's relationship to the day divide or whether the punch carries an account transfer.
Punch override types
- Break
- In punch
- New shift
- Out punch
These punches are interpreted as follows:
21003, 5/3/2016, 07:00, In
21003, 5/3/2016, 18:00, Out
21003, 5/3/2016, 19:00, In
21003, 5/3/2016, 21:00, Out
Date | In | Out |
---|---|---|
Tues 5/03 | 7:00 am | 6:00 pm |
Tues 5/03 | 7:00 pm | 9:00 pm |
Updates
When punches from the source file are already in the timecard, perhaps from a previous import, from a data collection system, or manually added, the API generates errors for the duplicate punch records.
Updates of existing punches may be needed if the new versions have an added account transfer, comment, or other attribute.
To suppress the errors, integrations can identify and delete the duplicate punches from the timecard then import them again from source, or exclude the duplicate punches in the source file. First, the integration must retrieve, cache, and look up the existing punches.
Validation
Punch imports are validated to make sure that:
- The employee is configured.
- The punch contains both a date and a time.
- The date of the punch is on or after the employee's current active status date.
- Attributes of the punch, such as a business structure account transfer, a work rule transfer, a comment, or a time zone, are in the relevant data dictionaries.

Requests to the integration must be in JSON and have the following sections:
- Parameters: To pass from the source
- Data: For the integration to process