Answers.Body: <p>Maurice - we did something similar for a large event this year with multiple series of workshops running simultaneously. </p>
  
  <p>Every participant was pre-registered in Civi. Each workshop was added as a separate Event in Civi. We printed barcodes of the participants' Internal Contact ID onto cheap Avery mailing labels - something like 3 inches by 2 inches - using the Event Badge template in Civi, and just pasted the labels on the back of the registration badge holder. </p>
  
  <p>We then created a shared spreadsheet in Google Drive, with a worksheet for each workshop, and set up a volunteer at the entrance of each workshop with a wifi-connected laptop and a USB barcode scanner. </p>
  
  <p>All the volunteer had to do was scan each bar code into the worksheet. It worked pretty well. One hitch was the size of the bar code produced from Civi is a little small, and we used cheap (we got them for about $10 each) old CueCat USB scanners I found through eBay. We then just imported the Participant IDs and updated the Event status for each workshop Participant as Attended.</p>
  
  <p>Just in case, we had plain old paper sign in sheets for each workshop available and used those in some instances.</p>
  
  <p>The biggest challenge of this technique is having enough volunteers, with available laptops, set up in advance with the USB scanner (and the correct driver software!) and decent wifi. Wifi isn't required but it was handy to have the scanned-in Internal Contact IDs for each Participant appear live in Google Drive while they were scanned in for the workshop.       </p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2015-08-14T05:38:03.080Z
Answers.Text: Joe - in case you didn't spot it above, another time, for your more manual back-up plan, you could also use the recipe at http://www.fuzion.co.nz/blogs/confirming-attendees-door-another-use-entity-and-vbo
Answers.UserDisplayName: petednz - fuzion
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2015-08-14T06:09:59.650Z
Answers.Text: Peter, thanks, had not seen that blog post before.
Answers.UserDisplayName: Joe McLaughlin
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2015-08-14T05:33:48.147Z
Answers.LastActivityDate: 2015-08-24T17:48:28.600Z
Answers.LastEditDate: 2015-08-24T17:48:28.600Z
Answers.UserDisplayName: Joe McLaughlin
Answers.Body: <p>Also, in the hope of helping others, since the question refers to 'quickly entering attendance' i thought it would be helpful to provide a link to this <a href="http://www.fuzion.co.nz/blogs/confirming-attendees-door-another-use-entity-and-vbo" rel="nofollow">recipe</a> which allows a Drupal user to tick people off as then enter, and then submit those updates via VBO to register them as 'attendees'.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2015-08-12T00:47:22.240Z
Answers.Text: Pete, this is great, thanks for the link!
Answers.UserDisplayName: Allen Hutchison
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2015-08-12T02:06:36.697Z
Answers.Text: your welcome. still not sure on SE etiquette versus the old forum. But I hope we can use it so we don't 'only' answer the question but can also provide related links to fellow voyagers who may yet pass this way ;-)
Answers.UserDisplayName: petednz - fuzion
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2015-08-11T22:56:22.097Z
Answers.LastActivityDate: 2015-08-11T22:56:22.097Z
Answers.UserDisplayName: petednz - fuzion
Answers.Body: <p>Not addressing the main point but to help others who find this due to looking for 'barcode' there have been previous efforts in this regard, check</p>
  
  <p><a href="https://forum.civicrm.org/index.php?topic=23767.0" rel="nofollow">https://forum.civicrm.org/index.php?topic=23767.0</a></p>
  
  <p>and </p>
  
  <p><a href="http://backofficethinking.com/blog/event-badges-infinity-and-beyond" rel="nofollow">http://backofficethinking.com/blog/event-badges-infinity-and-beyond</a></p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-06-14T22:11:01.080Z
Answers.Text: Also just found this. Curious as to whether the extension was ever released. https://civicrm.org/case-studies/city-of-london-club-secure-event-ticketing-using-civicrm-barcodes
Answers.UserDisplayName: petednz - fuzion
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2015-08-11T20:56:13.750Z
Answers.LastActivityDate: 2015-08-11T22:46:01.210Z
Answers.LastEditDate: 2015-08-11T22:46:01.210Z
Answers.UserDisplayName: petednz - fuzion
Answers.Body: <p>You don't say if you already have a participant record for the kids so my answer may not be quite what you want, but we can get there I think.</p>
  
  <p>Most basically you will need to have a little bit of custom code to look up the contact using your external id. (Next time consider using the contact id itself in the barcode). From that lookup you will have the contact id. With that and the event id which you say you know you should be able to use the api to look up the specific participant record you need.</p>
  
  <p>Of course if you aren't preregistering, then you could just generate the registration right then.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2015-08-13T03:09:22.877Z
Answers.Text: Sorry I forgot to mention that. Yes, the kids are pre-registered for the event.
  
  The reason that we can't use the contact ID for the barcode is that we are using pre-printed barcode cards which we hope to use again next year, but can't guarantee that the same kid will get the same card.
  
  Removing all the external ID's is easier. We simply don't have the money to buy a cardprinter.
  
  Unfortunately I have never done anything with the API, so I'm not sure if that is something I will be able to get my head around and have a working solution before August 24.
  
  Thanks for your help.
Answers.UserDisplayName: Maurice
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2015-08-11T21:37:57.493Z
Answers.LastActivityDate: 2015-08-11T21:37:57.493Z
Answers.UserDisplayName: DaveD
Body: <p>I use CiviCRM for a non-profit organization that, among other things, organizes a yearly funweek for children. This year, we introduce event badges with a barcode. I was hoping to be able to use this to quickly register the actual attendance for each day.<br>
  The barcode value is entered into the External ID field of each child's contact record. On the event registration I have custom fields for each day of the week.<br>
  Our plan was to have one of the volunteers scan each barcode as the children enter the building, then I could easily add the event id, presence and an indicator of the day to this list as that would be the same for each line.<br>
  Unfortunately this doesn't seem to work, because it doesn't seem to be possible to update event registrations unless I know the event registration id. Knowing the External ID and Event ID is apparently not enough to make a match. I find this odd as I think it is illogical to have one person register twice for the same event.<br>
  Is there a way around it except by exporting all attendees and using the export as a lookup-table to add the event registration id to the import-file?</p>
  
Tags: <civievent>
Title: Quickly entering attendance with barcodes
ThreadText: # Quickly entering attendance with barcodes
  
  (Asked by: username_0 on 2015-08-11)
  
  I use CiviCRM for a non-profit organization that, among other things, organizes a yearly funweek for children. This year, we introduce event badges with a barcode. I was hoping to be able to use this to quickly register the actual attendance for each day.  
  The barcode value is entered into the External ID field of each child's contact record. On the event registration I have custom fields for each day of the week.  
  Our plan was to have one of the volunteers scan each barcode as the children enter the building, then I could easily add the event id, presence and an indicator of the day to this list as that would be the same for each line.  
  Unfortunately this doesn't seem to work, because it doesn't seem to be possible to update event registrations unless I know the event registration id. Knowing the External ID and Event ID is apparently not enough to make a match. I find this odd as I think it is illogical to have one person register twice for the same event.  
  Is there a way around it except by exporting all attendees and using the export as a lookup-table to add the event registration id to the import-file?
  
  **Tags:** civievent
  
  
  ---
  
  ## 4 answers
  
  ### Answer by username_1 on 2015-08-14. Score: 2
  
  username_0 - we did something similar for a large event this year with multiple series of workshops running simultaneously.
  
  Every participant was pre-registered in Civi. Each workshop was added as a separate Event in Civi. We printed barcodes of the participants' Internal Contact ID onto cheap Avery mailing labels - something like 3 inches by 2 inches - using the Event Badge template in Civi, and just pasted the labels on the back of the registration badge holder.
  
  We then created a shared spreadsheet in Google Drive, with a worksheet for each workshop, and set up a volunteer at the entrance of each workshop with a wifi-connected laptop and a USB barcode scanner.
  
  All the volunteer had to do was scan each bar code into the worksheet. It worked pretty well. One hitch was the size of the bar code produced from Civi is a little small, and we used cheap (we got them for about $10 each) old CueCat USB scanners I found through eBay. We then just imported the Participant IDs and updated the Event status for each workshop Participant as Attended.
  
  Just in case, we had plain old paper sign in sheets for each workshop available and used those in some instances.
  
  The biggest challenge of this technique is having enough volunteers, with available laptops, set up in advance with the USB scanner (and the correct driver software!) and decent wifi. Wifi isn't required but it was handy to have the scanned-in Internal Contact IDs for each Participant appear live in Google Drive while they were scanned in for the workshop.
  
  > **Comments:**
  > **username_2**: Joe - in case you didn't spot it above, another time, for your more manual back-up plan, you could also use the recipe at http://www.username_2.co.nz/blogs/confirming-attendees-door-another-use-entity-and-vbo  
  > **username_1**: Peter, thanks, had not seen that blog post before.  
  
  ---
  
  ### Answer by username_2 on 2015-08-11. Score: 1
  
  Also, in the hope of helping others, since the question refers to 'quickly entering attendance' i thought it would be helpful to provide a link to this [recipe](http://www.username_2.co.nz/blogs/confirming-attendees-door-another-use-entity-and-vbo) which allows a Drupal user to tick people off as then enter, and then submit those updates via VBO to register them as 'attendees'.
  
  > **Comments:**
  > **username_3**: Pete, this is great, thanks for the link!  
  > **username_2**: your welcome. still not sure on SE etiquette versus the old forum. But I hope we can use it so we don't 'only' answer the question but can also provide related links to fellow voyagers who may yet pass this way ;-)  
  
  ---
  
  ### Answer by username_2 on 2015-08-11. Score: 1
  
  Not addressing the main point but to help others who find this due to looking for 'barcode' there have been previous efforts in this regard, check
  
  <https://forum.civicrm.org/index.php?topic=23767.0>
  
  and
  
  <http://backofficethinking.com/blog/event-badges-infinity-and-beyond>
  
  > **Comments:**
  > **username_2**: Also just found this. Curious as to whether the extension was ever released. https://civicrm.org/case-studies/city-of-london-club-secure-event-ticketing-using-civicrm-barcodes  
  
  ---
  
  ### Answer by username_4 on 2015-08-11. Score: 0
  
  You don't say if you already have a participant record for the kids so my answer may not be quite what you want, but we can get there I think.
  
  Most basically you will need to have a little bit of custom code to look up the contact using your external id. (Next time consider using the contact id itself in the barcode). From that lookup you will have the contact id. With that and the event id which you say you know you should be able to use the api to look up the specific participant record you need.
  
  Of course if you aren't preregistering, then you could just generate the registration right then.
  
  > **Comments:**
  > **username_0**: Sorry I forgot to mention that. Yes, the kids are pre-registered for the event.  The reason that we can't use the contact ID for the barcode is that we are using pre-printed barcode cards which we hope to use again next year, but can't guarantee that the same kid will get the same card.  Removing all the external ID's is easier. We simply don't have the money to buy a cardprinter.  Unfortunately I have never done anything with the API, so I'm not sure if that is something I will be able to get my head around and have a working solution before August 24.  Thanks for your help.  
  
  ---
  
  