10

I have never seen the checksum available in the API. I have successfully obtained it programmatically though with code similar to: $cs = CRM_Contact_BAO_Contact_Utils::generateChecksum($contact_id); (This snippet is adapted from core code in CRM/Utils/Token.php)


9

I'm pretty certain you can't get a checksum from the standard API. However, you should write (or commission) an extension to provide a checksum API. The API would basically be a wrapper around the code that DaveD suggested, and you can read documentation here on how to use Civix to generate an API in your extension.


8

The checksum is an md5 hash of the value in the database field civicrm_contact.hash, the Contact ID, the current timestamp and the life-span. Therefore, as long as the contact hash stays the same (it never changes, unless you do it manually), then you can generate as many tokens as necessary. Once generated, checksums look like xxxx_yyyy_zzzz. The first part ...


7

These two extensions should assist - https://civicrm.org/extensions/contact-checksum-ui https://civicrm.org/extensions/fancy-tokens The second extension provides tokens for all active contribution pages and active events with online registration enabled.


5

I think this is possible with the below adjustments on the webform. Add a disabled textfield on your webform and set its default value to a token or checksum value from the URL. Now, add the condition on this element to hide email when it's value is not blank. Update after Karing's comment - If you need to hide the field from the webform, maybe use a ...


5

I needed this exact functionality, so I wrote the extension that provides it, com.megaphonetech.checksums. I used Coleman's comment above as my spec :)


4

The checksum is not stored in the database, have a look at CRM_Contact_BAO_Contact_Utils more specifically at the methods generateChecksum and validChecksum. The genereateChecksum method returns the checksum like $checksum_$timestamt_$life the life is in hours, so for a given checksum you could tell when was generated and what was is expire date. The ...


4

If you have hosting that allows you to turn on Detailed Logging, there are two extensions that provide address history. One is in Extended Reports; the other is Joseph Lacey's Address Log report. It should be relatively simple to extend either one to support phone/email/etc. Another option, low-tech but effective, would be to export the contact details ...


4

I found it myself: /civicrm/admin/setting/misc?reset=1 Default setting is 7 days.


4

I've just tested this and thankfully I wasn't able to recreate the issue. In your settings for the 'Existing Contact' component, please could you check that the 'Enforce Permissions' checkbox is selected? It should be ticked by default. This should prevent viewing of other peoples' data.


3

Someone else may have a simpler answer, but here's how I would do it: Install the extensions "CiviRules" and "Email API". Create a group called "Requested Data Update Email". Create an email template with whatever you want, including the checksum. Create a rule that when someone is added to the new group, they receive the email you just created. Create a ...


3

Here is an answer that explains the prefix https://webmail.west.cox.net/do/mail/message/ that was added to the front of our primary domain. Looking at the CiviMail source for this message (and a number of other similar messages, propagated by copy/paste) the mail source did not specifically set the protocol prefix to "https://". Instead, the source had the ...


3

The contact checksum works equally well for a CiviEvent registration as it does for updating their contact info via a profile. The tokens page of the wiki has a section at the bottom that shows how to format the URL based on your CMS: Checksum for Event Registration Pages: To send people to an event registration page use this path where N is the ID of your ...


3

This works now using the following URL /civicrm/user?reset=1&id={contact.contact_id}&{contact.checksum}


3

I believe that for profile edit, you need to use id rather than cid for the contact id, as per the docs you linked to: http://www.myorganization.org/civicrm/profile/edit?reset=1&gid=N&{contact.checksum}&id={contact.contact_id}


3

You can use Menu token module and Civicrm token module to create link in drupal module. civicrm/contact/view?cid=[civi:contact_ID]&reset=1 Thanks Pradeep


2

We set up a group specifically to track who has completed the profile and use the profile setting option to auto-add them to this group. This way we have a group of everyone who completed the profile that we can exclude from future mailings prompting them to complete again. This obviously won't track if someone has just visited the page, but for us, we'...


2

I've opened a Gitlab issue for this requirement - https://lab.civicrm.org/dev/core/issues/162. Also submitted a patch for this against master branch of the core repository - https://github.com/civicrm/civicrm-core/pull/12254 UPDATE - the patch is accepted and should be a part of 5.2.0 version.


2

Checksums can only be used for visitor facing forms like event registration, membership sign up or profile forms. If you have drupal as frontend you can also use it in the webform module. It is not usable for backend screens. Also see http://wiki.civicrm.org/confluence/display/CRMDOC/Tokens


2

Would something like this work?


2

I assume the "page" you're referring to is using a Webform, If that's the case, then you should mention that in the title. The link to the form should be of the format http://example.com/your_form?cid={contact.contact_id}&{contact.checksum}. On the CiviCRM tab, in the Contact Field section, select Existing Contact, as well as all the fields you want to ...


2

Are you sure you are sending your test email to an individual contact? if you have several contacts that have the same email address (eg info@my.org) that you associated both to your organisation and yourself, civimail might send it to the organisation instead of the individual. take the id of the contact and view its record and double check it's an ...


2

I'm not sure which CMS you are using but, per the civicrm wiki page, the URL Checksum for standard Profiles (edit mode) is as below: To send people to a profile use this path where N is the ID of the Profile you want to send them to: Drupal: http://www.myorganization.org/civicrm/profile/edit?reset=1&gid=N&{contact.checksum}&id={contact....


2

The fix was to delete the entry in the table 'Settings' for 'checksum_timeout' and then update the 'Misc' settings which recreated that table entry. I did test this idea first...! Now the 'Contact Checksum UI' has picked the timeout up OK so it's looking like there was something not right about that table entry - although I can't see any difference at all ...


1

I think you can achieve your goal using webforms. It may require a bit of jquery or could possibly be done just with Conditionals. I suspect the latter would require a read-only field 'showing' the data, and another field for the change. Then a conditional that says eg 'if A != B then set value to 'insert email address'. then set up a mailing on that basis. ...


1

I just had this exact same problem. (I'm on Version 5.25.0, posting over a year later, so an upgrade would not have been the answer) What "fixed" my problem was to change the order of the parameters so that the checksum parameter was first after the ? https://DOMAIN.com/WEBFORM?{contact.checksum}&cid1={contact.contact_id} instead of: https://...


1

I was having a bugger of a time troubleshooting a similar problem with the checksum capability for anonymous users. After trying and identifying many different potential causes such as: cid versus id for the contact the order of the checksum or contactid tokens ACL permissions whether SSL or non-SSL made a difference update to CiviCRM 5.0 (currently on ...


1

well the answer turned out to be using a profile that included the "is deceased" field. Somehow that was setting that field to Null and Civimail didnt like that. Setting the "is deceased" field to 0 fixed it up and all good now


1

It seems only the link was incorrect and lead to the explained behaviour. The wiki entry over at civicrm.org is inaccurate (for Wordpress installations at least). The suggested link is .../?page=CiviCRM&q=civicrm/profile/edit&reset=1&gid=N&{con‌​tact.checksum}&id={c‌​ontact.contact_id} while in my case the correct link is .../civicrm/?...


1

I think this is nothing to do with the checksum (other than that causes the right contact to load) but is an issue with webform-civicrm overwriting existing info in the membership table. Pretty sure this is an issue with the webform_civicrm code. Have raised here


Only top voted, non community-wiki answers of a minimum length are eligible