CiviCRM Community Forums (archive)

*

News:

Have a question about CiviCRM?
Get it answered quickly at the new
CiviCRM Stack Exchange Q+A site

This forum was archived on 25 November 2017. Learn more.
How to get involved.
What to do if you think you've found a bug.



  • CiviCRM Community Forums (archive) »
  • Old sections (read-only, deprecated) »
  • Support »
  • Using CiviCRM »
  • Using Import (Moderator: Yashodha Chaku) »
  • Feedback from users: what's a pain in the ...
Pages: [1] 2

Author Topic: Feedback from users: what's a pain in the ...  (Read 2445 times)

xavier

  • Forum Godess / God
  • I’m (like) Lobo ;)
  • *****
  • Posts: 4453
  • Karma: 161
    • Tech To The People
  • CiviCRM version: yes probably
  • CMS version: drupal
Feedback from users: what's a pain in the ...
November 09, 2010, 12:42:17 pm
Hi,

Been working today on his first import with Paul, user. Dumping here all the points I've already heard somewhere else from other users

1) be able to handle both "," ";" and tab as the separator (suggestion: loop on the 3, see which one provides more column)
This is quite a pain in Europe, where every single f** excel seems to be configured differently
(ps. on 3.3, you got a nice db error if you got the wrong one, because it's trying to create a table name/field that is too long)

2) having a "proceed anyway/ignore the errors/do your best" mode.
Have no idea how complicated it would be that instead of skipping the record, just skipping the invalid field. eg, you got "not valid @email@com" as an email, create the contact anyway, without the email field

3) Consider UK as being the same as GB. I'm fully aware that it's ISO correct to want GB, but really, everyone uses UK

4) The conversion to csv from excel fubar every char that isn't latin1 (eg romanian chars, polish ones...)
phpexcel seems to be able to read excel files. would come a long way to make the imports less painful

5) the dreaded "if you have an empty field in the last column". In that case (from excel), it doesn't seems to generate the last column and therefore civi doesn't import the row

Not sure how easy it would be to tell civi to fill with blank if missing columns

6) display the errors as html instead of csv.
What's the benefit of going it as a csv ? Don't get it.

7) being able to set the source.
As for being able to create a tag, being able to set "import list XXX", so you know where your contacts come from in 6 months time.




That's it. I'm going for 3.4 to try to nail some of these, if you got budget/skills feel free to contribute.

No matter what, please post what problems/solutions I'm missing, that's therapy corner ;)

X+




-Hackathon and data journalism about the European parliament 24-26 jan. Watch out the result

petednz

  • Forum Godess / God
  • I’m (like) Lobo ;)
  • *****
  • Posts: 4899
  • Karma: 193
    • Fuzion
  • CiviCRM version: 3.x - 4.x
  • CMS version: Drupal 6 and 7
Re: Feedback from users: what's a pain in the ...
November 09, 2010, 01:35:16 pm
Dear Auntie Xav - I am having a problem with my boyfriend

Actually the problem is that when I import the data with my boyfriend in it, what I want to do is to 'update' his data if a match is found, but not update it if no match is found, ie the reverse of what the system currently allows.

We currently have 'if match found then skip/update etc' what we don't have is 'if no match found then skip/update etc'

Thank you, I feel so much better now I have that off my chest.
Sign up to StackExchange and get free expert advice: https://civicrm.org/blogs/colemanw/get-exclusive-access-free-expert-help

pete davis : www.fuzion.co.nz : connect + campaign + communicate

xavier

  • Forum Godess / God
  • I’m (like) Lobo ;)
  • *****
  • Posts: 4453
  • Karma: 161
    • Tech To The People
  • CiviCRM version: yes probably
  • CMS version: drupal
Re: Feedback from users: what's a pain in the ...
November 09, 2010, 01:57:00 pm
Quote from: peterd on November 09, 2010, 01:35:16 pm
... my boyfriend in it, what I want to do is to 'update' his data

May I suggest you not to try to update anything boyfriend related? the less you know the better. The proper basis for a marriage is mutual misunderstanding (OW).

Yeap, you're right, "no create update only" would have been proven handy.

Another one: "dynamic dedupe rules". We got quite a few emails only (eg. contacts that registered with only their email for the newsletter). These never matches when you import a contact with first+last+email, even if the email is there only once) and you end up with a duplicate that could be avoided.

X+
-Hackathon and data journalism about the European parliament 24-26 jan. Watch out the result

petednz

  • Forum Godess / God
  • I’m (like) Lobo ;)
  • *****
  • Posts: 4899
  • Karma: 193
    • Fuzion
  • CiviCRM version: 3.x - 4.x
  • CMS version: Drupal 6 and 7
Re: Feedback from users: what's a pain in the ...
November 09, 2010, 02:08:17 pm
Quote
Another one: "dynamic dedupe rules".
Actually just a pop-up after screen1 that says 'have you checked that your default Strict Matching Rule is the one you want to use for this import' would save a few brain cells - especially the ones that end up splattered on the wall!
Sign up to StackExchange and get free expert advice: https://civicrm.org/blogs/colemanw/get-exclusive-access-free-expert-help

pete davis : www.fuzion.co.nz : connect + campaign + communicate

xavier

  • Forum Godess / God
  • I’m (like) Lobo ;)
  • *****
  • Posts: 4453
  • Karma: 161
    • Tech To The People
  • CiviCRM version: yes probably
  • CMS version: drupal
Re: Feedback from users: what's a pain in the ...
November 09, 2010, 02:47:00 pm
Now I remember:

Being able to choose the dedupe rule on a per import basis

X+
-Hackathon and data journalism about the European parliament 24-26 jan. Watch out the result

Eileen

  • Forum Godess / God
  • I’m (like) Lobo ;)
  • *****
  • Posts: 4195
  • Karma: 218
    • Fuzion
Re: Feedback from users: what's a pain in the ...
November 09, 2010, 03:24:07 pm
Yep - we had that last one on the Make-it-Happen list looking for a kick-start cash injection offer
Make today the day you step up to support CiviCRM and all the amazing organisations that are using it to improve our world - http://civicrm.org/contribute

petednz

  • Forum Godess / God
  • I’m (like) Lobo ;)
  • *****
  • Posts: 4899
  • Karma: 193
    • Fuzion
  • CiviCRM version: 3.x - 4.x
  • CMS version: Drupal 6 and 7
Re: Feedback from users: what's a pain in the ...
November 09, 2010, 04:05:38 pm
Wondering if the 'are you sure that you have the relevant Matching Rule' as a pop up post Screen1 maybe a seriously cheap alternative in the meantime
Sign up to StackExchange and get free expert advice: https://civicrm.org/blogs/colemanw/get-exclusive-access-free-expert-help

pete davis : www.fuzion.co.nz : connect + campaign + communicate

alanms

  • I post occasionally
  • **
  • Posts: 72
  • Karma: 5
Re: Feedback from users: what's a pain in the ...
November 10, 2010, 01:17:01 pm
As a slightly dirty but instantly available working short term fix to a lot of the Excel related issues, the macro I put up at http://forum.civicrm.org/index.php/topic,16442.0.html now prevents many of these problems:
  • It properly saves non-fubar-ed UTF-8 characters, including Arabic, Chinese etc as well as common issues like Polish accents
  • I don't know what the 'dreaded "if you have an empty field in the last column" ' is, but as a random by-product of the way it's set up it creates a uniformly blank last column that you'll always not import, which I believe would avoid this.
  • It forces "," regardless of locale (although I agree that this is no substitute to solving this one Civi-side)
  • It fixes that other problem of Excel-exported names that begin with certain accented characters being skipped
  • It solves peterd's boyfriend problems - except the one about who does the washing up. You're on your own for that one.

One 'pain in the ...' of my own: why is there no 'upload' box on the "Congratulations, you have 436 errors" page? I'm guessing the expected use is that when people hit errors, they run import anyway, take the error.csv, fix it, cull the first two columns, save it, then import it to complete the set. This makes some sense, but only if we assume that people are confident hitting 'proceed' when a slow, delicate process they don't really understand tells them there's an error, and if we also assume people are as comfortable working with an ugly, zero-formatting machine generated .csv file as they are with a friendly, pretty spreadsheet they'd been working with for a few days already. These assumptions are probably true of most techies, but it seems most people feel more confident doing one perfect, error free import, in which case manually going right back to the start and re-doing all the config like de-dupe rules etc is infuriating.

It'd be great to see an upload allowed on the error/confirmation screen when there's errors which proceeds using the existing configuration. Maybe a wise piece of validation to add would be a check that there's still the same number of columns as before, to reduce the chances of the CSV ending up misaligned with the existing mapping if someone decides to delete a problematic column.

Two more very specific gripes where fine-looking data gives frequent unexpected errors:
  • If 'Website' already checks for 'http://' at the start, could it not add in "http://" where a field begins 'www.' and is therefore clearly a website?
  • "Tanzania, United Republic of"? Surely there wouldn't be riots on the streets of Dar Es Salaam if Civi accepted just "Tanzania"? Likewise surely Macedonia should be either "Macedonia", or a diplomatic, Greece-appeasing "Macedonia, FYR" - I'm not sure who benefits from forcing "Macedonia, Republic of"


Finally here's an 'If only' suggestion: what would be amazing to see would be a friendly AJAX powered import process which replaces the unnerving mystery voodoo of the 'Importing ... 0%' box, and also replaces the 500-error baiting of "Create resource intensive SQL queries unique to imports, and hope the server doesn't crack under the weight" with a line-by-line AJAX API-based process that takes the next line of CSV, validates it, imports what it can using standard API calls, prints a row to a HTML table on the screen including any errors in the appropriate cell, shrinks the last-but-2 row if there's no errors (making errors easy to spot while skimming over the results and keeps the process accountable and easy to follow if someone does want to keep an eye on how a particular import is going), and repeats. You could even print error cells as JQuery input fields where value= the value that failed and which do an onBlur API save of that record to the appropriate record - this wouldn't be hard and would make fixing errors that slipped through the first error check really simple.

End of rant. :) hope the long 3-part post isn't too unsightly, this had been bugging me a lot lately!
« Last Edit: November 10, 2010, 01:23:19 pm by alanms »

petednz

  • Forum Godess / God
  • I’m (like) Lobo ;)
  • *****
  • Posts: 4899
  • Karma: 193
    • Fuzion
  • CiviCRM version: 3.x - 4.x
  • CMS version: Drupal 6 and 7
Re: Feedback from users: what's a pain in the ...
November 10, 2010, 01:22:45 pm
Dear Psychic Auntie A. - oh man - i didn't even mention the washing up issue - how did you know? You are good!
Sign up to StackExchange and get free expert advice: https://civicrm.org/blogs/colemanw/get-exclusive-access-free-expert-help

pete davis : www.fuzion.co.nz : connect + campaign + communicate

xavier

  • Forum Godess / God
  • I’m (like) Lobo ;)
  • *****
  • Posts: 4453
  • Karma: 161
    • Tech To The People
  • CiviCRM version: yes probably
  • CMS version: drupal
Re: Feedback from users: what's a pain in the ...
November 10, 2010, 02:02:40 pm
Quote from: alanms on November 10, 2010, 01:17:01 pm
[...]common issues like Polish accent[...]
Not that I disagree with you, but Piotr and Michal might object with your statement ;)

Beside that, loads of good ideas.

And your explanation made me realise why the error report is in csv instead of html. I never used it, and always fix the original document comparing with the awfully formatted error csv report , go back to the start and run through the wizard from hell one more time. (I might have hinted already here and there I'm not very fond of wizard ;)

As for your api idea. Didn't someone work on that already ? Or planned to ? Would be a neat solution indeed, with a slight concern about transactions/rollback (not sure there isn't that issue anyway)

X+
-Hackathon and data journalism about the European parliament 24-26 jan. Watch out the result

alanms

  • I post occasionally
  • **
  • Posts: 72
  • Karma: 5
Re: Feedback from users: what's a pain in the ...
November 12, 2010, 05:27:43 pm
I've noticed some allusions from you about building custom imports using the APIs a few times on the forums - got any spare URLs handy? I've found plenty of relevant looking reading but it's hard to see how the various pieces of work and ideas from here and there fit together and what actually became of them. (this might be a common problem!)

Or are the contact add / update functions robust enough to simply trust out of the box? I know they've got a dupe check built in and I gather from what I've seen that validation would to be coded in again on the side... (I miss working in MVC!)

In what sense do you mean transactions/rollback - do you mean in terms of making imports reversible, keeping appropriate records of each transaction?

At some point in the near future I'd be up for contributing some time to help make something like this happen, especially on the ui design side of things (not least because I don't want to be held responsible for any import wizard induced high blood pressure or hair loss on the part of the staff I hand over to!)

xavier

  • Forum Godess / God
  • I’m (like) Lobo ;)
  • *****
  • Posts: 4453
  • Karma: 161
    • Tech To The People
  • CiviCRM version: yes probably
  • CMS version: drupal
Re: Feedback from users: what's a pain in the ...
November 12, 2010, 09:09:47 pm
Quote from: alanms on November 12, 2010, 05:27:43 pm
I've noticed some allusions from you about building custom imports using the APIs a few times on the forums - got any spare URLs handy? I've found plenty of relevant looking reading but it's hard to see how the various pieces of work and ideas from here and there fit together and what actually became of them. (this might be a common problem!)

Or are the contact add / update functions robust enough to simply trust out of the box? I know they've got a dupe check built in and I gather from what I've seen that validation would to be coded in again on the side... (I miss working in MVC!)
Yes, civicrm_contact_create and friends is what I use. I tend to not trust the dedupe, but do it manually (eg. do a civicrm_contact_get and based on the result update or create a new contact, so I have a full control of what I test as duplicates, that tend to be specific).

The big benefit is that it's trivial to re-run an import run (that's php-cli scripts). Not quite the same feeling with the import UI.

Quote from: alanms on November 12, 2010, 05:27:43 pm

In what sense do you mean transactions/rollback - do you mean in terms of making imports reversible, keeping appropriate records of each transaction?

When I do import a file and if it fails in the middle, I'd rather have nothing imported than having to guess where it stops. This being said, if the message is clear enough probably not a big deal

Quote from: alanms on November 12, 2010, 05:27:43 pm
At some point in the near future I'd be up for contributing some time to help make something like this happen, especially on the ui design side of things (not least because I don't want to be held responsible for any import wizard induced high blood pressure or hair loss on the part of the staff I hand over to!)

That'd be great. Do you know what part(s) of the long list of ideas you'd want to give a go ?
If I may by picking up the ideas, what strikes me as making the most improvements:

- being able to see directly the errors as html instead of having to download a csv
- being able to re-upload the corrected csv in that step
- being able to "continue" on errors (eg. thank you for notify me that the country in line 14 is not a valid one, but please import her (first name, email and what else there is) anyway without the country, I'll correct manually in civi instead of skipping it (an option about what mode I want would be great)

Have you tried phpexcel ? If it works good enough, that would be search a relief to stop giving excel the opportunity to fubar the file.

X+
-Hackathon and data journalism about the European parliament 24-26 jan. Watch out the result

alanms

  • I post occasionally
  • **
  • Posts: 72
  • Karma: 5
Re: Feedback from users: what's a pain in the ...
November 13, 2010, 10:41:19 am
Quote from: xavier on November 12, 2010, 09:09:47 pm
I tend to not trust the dedupe, but do it manually (eg. do a civicrm_contact_get and based on the result update or create a new contact, so I have a full control of what I test as duplicates, that tend to be specific).

The big benefit is that it's trivial to re-run an import run (that's php-cli scripts). Not quite the same feeling with the import UI.
So do you mainly do imports from the command line, or with import-specific pages? Got an organisation-neutral example to share? Sounds like a good starting reference point.

Quote from: xavier on November 12, 2010, 09:09:47 pm
Do you know what part(s) of the long list of ideas you'd want to give a go ?
It's the UI side of things I'm primarily interested in: mainly the things in and around my 'If only' rant. My main goal with this is to make the process end user friendly - something a smart but stressed and mildly technophobic Fundraising Assistant or Project Officer can safely, confidently use without risking brain haemorrhage. Skills-wise this is where I can contribute most: it's interaction design that's my specialisation, and I'm better with things like fancy jQuery/AJAX tricks and working with APIs than I am navigating the CiviCRM core maze (background in Ruby on Rails so all these model-level database-facing actions duplicated between multiple pages, some of which are tied to particular views, leaves me thoroughly confused!).

So my ideal push on this would involve getting a few willing people, agree on how the final import process should work, fix a wishlist, and then my role would focus on a better interface and getting it to play nicely with the APIs while others focus on the tasks requiring expertise on CiviCRM's existing codebase such as tweaking validation rules, getting dedupe to play nicely, performance, database mapping and so on.

Donald Lobo

  • Administrator
  • I’m (like) Lobo ;)
  • *****
  • Posts: 15963
  • Karma: 470
    • CiviCRM site
  • CiviCRM version: 4.2+
  • CMS version: Drupal 7, Joomla 2.5+
  • MySQL version: 5.5.x
  • PHP version: 5.4.x
Re: Feedback from users: what's a pain in the ...
November 13, 2010, 01:32:46 pm
Quote from: alanms on November 13, 2010, 10:41:19 am
all these model-level database-facing actions duplicated between multiple pages, some of which are tied to particular views, leaves me thoroughly confused!).

can you elaborate a bit more on this with specific example. We can and should clean up the code base when folks point us to redudant / bad code etc

lobo
A new CiviCRM Q&A resource needs YOUR help to get started. Visit our StackExchange proposed site, sign up and vote on 5 questions

alanms

  • I post occasionally
  • **
  • Posts: 72
  • Karma: 5
Re: Feedback from users: what's a pain in the ...
November 13, 2010, 05:01:06 pm
I meant duplicate in the loosest sense, of different code appearing in different places to achieve the same purpose, not redundant code in the strict sense. To give a very general example from some other Civi work I'm doing, putting together a single 'no surprises' standard hierarchical tree display for groups and tags, I was surprised to find that multiple 'page' or 'form' php files were doing processing that was near identical functionally, but using processes that were surprisingly varied and included surprising things hard-coded at view level. I can't remember any of the specifics, I might quote a few when I've finished that task.

It probably wouldn't count as 'bad' code - just a culture shock compared to the fierce standards of dry-ness and mvc that I'm used to!

Pages: [1] 2
  • CiviCRM Community Forums (archive) »
  • Old sections (read-only, deprecated) »
  • Support »
  • Using CiviCRM »
  • Using Import (Moderator: Yashodha Chaku) »
  • Feedback from users: what's a pain in the ...

This forum was archived on 2017-11-26.