[ Home ]

Time Recording: NFC Automation

Time Recording supports NFC based punching. Getting started is easy, obviously this requires an Android device with NFC read/write support:
1. Grab a bunch of NFC Tags (NDEF compatible, e.g. NTAG203)
2. Install the DG NFC Automation app.
3. Use the built-in "Write" function to define the NFC command and write it to the tags.
4. Deploy the tags. Each scan will trigger the according Time Recording action.

Note the DG NFC Automation app is required for both writing NFC tags (which you typically do as a one time setup) as well as reading the NFC tags and dispatching to Time Recording whenever you scan those tags.
Also note the "Task auto creation" mentioned below - we think this is an easy and simple to use way to use the same tasks within a team.

Fields on the "Write NFC Tags" screen

• Punch: Checks out if currently on clock. Otherwise checks in using the requested task.
• In, Out: Plain punch-in or punch-out. This implies you need two NFC Tags for full automation (i.e. one for check-in, one for check-out).
• Switch task: Performs a "switch task" to the requested task, or (if not checked in yet) a check-in with the requested task. Note this always creates a new work unit (even if already checked-in with the requested task).
• Smart Punch:
- If not checked in: checks in to the requested task
- If checked in to a different task: switches to the requested task
- If already checked in to the requested task: performs a check-out
=> if you don't know which action to use: try with "Punch" and do some testing.

Task name, client name:
Same fields as on the "Edit tasks" screen within Time Recording. Use the lookup button to select existing tasks/clients.
Note Task auto creation is enabled: when you use the NFC Tags to punch in and out later on, Time Recording will automatically create the given task and client if it can't find it in its task list. This also works cross-device, since the task and client name are stored on the NFC Tag: if user A writes an NFC tag and user B scans that tag, the given task will be created if neccessary within B's Time Recording app.

Offset in minutes:
Optionally shift the punch time by x minutes. Negative values are supported, indicating "past time". Samples:
'-3' for "Check in": app checks in with time "three minutes ago"
'5' for "Check out": app checks out with time "in 5 minutes"

Target app:
• "Default" will direct the NFC command to whatever Time Recording app it finds installed. If both Pro and Free are installed then Pro takes precedence over Free.
• Use the other values only if you explicitly want to restrict to a specific app version.
• Note this also supports the Multi instances.

NDEF Specification
NDEF Mime record:
• Mimetype = application/timerec
• Data = UTF-8 encoded 'text to bytes'
• Text tokens:
{a:p|sp|i|o|s} /* action: p=punch, sp=smart punch, i=in, o=out, s=switch task */
{t:taskname[[clientname]]} /* clear text task and client name, with auto creation */
{o:mm|-mm} /* offset in minutes, regardless of action*/
{oi:mm|-mm} /* offset in minutes on CHECK IN */
{oo:mm|-mm} /* offset in minutes on CHECK OUT */
{os:mm|-mm} /* offset in minutes on SWITCH TASK */
{pkg:pro|free|1..20} /* target app */

• Data sample: {a:punch}{t:MyTask[[MyClient]]}{oi:-5}{oo:2}