Answers.Body: <p>The construction differs depending on your cms. </p>
  
  <p>Best info imo is at docs.civicrm.org/dev/en/master/framework/civimail/tokens </p>
  
  <p>You have pasted </p>
  
  <p>civicrm/profile/edit?reset=1&amp;gid=1&amp;id=2798&amp;5fb7dfc93d6b855d75659da64805ac82_1503574955_179</p>
  
  <p>In point 5. you stated ** and the {contact. contact_id}** but i don't see that in your example.</p>
  
  <p>You need to have <strong>cid={contact. contact_id}</strong> in the string so will not work</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-08-29T19:58:54.650Z
Answers.LastActivityDate: 2017-08-29T19:58:54.650Z
Answers.UserDisplayName: petednz - fuzion
Answers.Body: <p>As Pete says, your question (and Stack Exchange history) suggests you're using WordPress - but the example you added is using the Drupal URL construction.</p>
  
  <p>In addition to Pete's answer, there's also the <a href="https://civicrm.org/extensions/fancy-tokens" rel="nofollow noreferrer">Fancy Tokens</a> extension, which you can install from the in-app Extensions directory.  It takes the pain out of this for you.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-08-31T05:05:51.970Z
Answers.LastActivityDate: 2017-08-31T05:05:51.970Z
Answers.UserDisplayName: Jon G - Megaphone Tech
Answers.Body: <p>You can use this link to allow user to update their profile without logging in:</p>
  
  <pre><code>http://www.myorganization.org/mybasepage?page=CiviCRM&amp;q=civicrm/profile/edit&amp;reset=1&amp;gid=2&amp;id={contact.contact_id}&amp;{contact.checksum}
  </code></pre>
  
  <p>Please note that:</p>
  
  <ul>
  <li>www.myorganization.org is the URL where CiviCRM is installed</li>
  <li>mybasepage is the basepage of your CiviCRM installation (usually it's civicrm, but it may vary)</li>
  <li>gid=2 is the profile ID number</li>
  </ul>
  
  <p>(Found this solution <a href="https://aghstrategies.com/content/how-create-one-click-personalized-links-civicrm-emails" rel="nofollow noreferrer">here</a>)</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-09-02T07:59:46.960Z
Answers.LastActivityDate: 2019-09-02T08:05:52.033Z
Answers.LastEditDate: 2019-09-02T08:05:52.033Z
Answers.UserDisplayName: Marco
Body: <p>I have now followed all the instructions in the CiviCRM Cookbook (<a href="https://www.packtpub.com/web-development/civicrm-cookbook" rel="nofollow noreferrer">https://www.packtpub.com/web-development/civicrm-cookbook</a>) as well as a similar post here on Stack (<a href="https://civicrm.stackexchange.com/questions/18733/allow-anonymous-users-to-view-profiles-in-wordpress/18738">allow anonymous users to view profiles in WordPress?</a>) but had no joy getting the URL right to get people to update their profile without having to log in.</p>
  
  <p>The instructions state the following:</p>
  
  <p>Using the CiviCRM checksum token in combination with a profile allows you to bypass the requirement to log in.</p>
  
  <ol>
  <li>Create a profile you wish to use. The profile contains all the fields of information that
  you want the user to complete.</li>
  <li>Make a note of the profile ID.</li>
  <li>Enable Profile Listings and Forms access for anonymous and authenticated users
  in your CMS.</li>
  <li>Now create a CiviMail mailing in the normal way.</li>
  <li>You now need to use the {contact.checksum} token and the {contact.
  contact_id} token to construct a link back to edit the profile you created:
  <a href="http://www.myorganization.org/civicrm/profile/" rel="nofollow noreferrer">http://www.myorganization.org/civicrm/profile/</a>
  edit?reset=1&amp;gid=N&amp;id={contact.contact_id}&amp;{contact.checksum}</li>
  <li>Substitute your website for <a href="http://www.myorganization.org" rel="nofollow noreferrer">http://www.myorganization.org</a>.</li>
  </ol>
  
  <p>Perhaps there was a print error in the book because I have tried numerous variable options to get this working without joy.</p>
  
  <p>Any thoughts? Thanks</p>
  
  <p>EDIT: Added example below.</p>
  
  <p><a href="https://crm.example.com/civicrm/profile/edit?reset=1&amp;gid=1&amp;id=2798&amp;5fb7dfc93d6b855d75659da64805ac82_1503574955_179" rel="nofollow noreferrer">https://crm.example.com/civicrm/profile/edit?reset=1&amp;gid=1&amp;id=2798&amp;5fb7dfc93d6b855d75659da64805ac82_1503574955_179</a></p>
  
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-08-28T20:39:03.607Z
Comments.Text: the construction differs depending on your cms. best info imo is at https://docs.civicrm.org/dev/en/master/framework/civimail/tokens/   why not paste what you constructed (without your domain if that needs to be kept private). Also check your permissions that anon have access to Custom Fields etc.
Comments.UserDisplayName: petednz - fuzion
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-08-29T13:49:30.020Z
Comments.Text: Thanks @petednz-fuzion. I have added the example URL. Also, the Custom Fields is allowed too. I don't think the subdomain or the SSL certificate should affect this right? I would expect a variable name for the checksum but the instructions are unclear what that var should be.
Comments.UserDisplayName: SixfootJames
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-08-29T18:29:17.307Z
Comments.Text: `{contact.checksum}` should expand to `cs=XXX`  Your example does not include `cs=`.  Was that a copying error or is that how it really is?  What version are you running?  You could try manually adding the `cs=` but it should be included automatically.
Comments.UserDisplayName: Aidan
Tags: <profile>
Title: Allowing users to update information without logging in
ThreadText: # Allowing users to update information without logging in
  
  (Asked by: username_0 on 2017-08-28)
  
  I have now followed all the instructions in the CiviCRM Cookbook (<https://www.packtpub.com/web-development/civicrm-cookbook>) as well as a similar post here on Stack ([allow anonymous users to view profiles in WordPress?](https://civicrm.stackexchange.com/questions/18733/allow-anonymous-users-to-view-profiles-in-wordpress/18738)) but had no joy getting the URL right to get people to update their profile without having to log in.
  
  The instructions state the following:
  
  Using the CiviCRM checksum token in combination with a profile allows you to bypass the requirement to log in.
  
  1. Create a profile you wish to use. The profile contains all the fields of information that
     you want the user to complete.
  2. Make a note of the profile ID.
  3. Enable Profile Listings and Forms access for anonymous and authenticated users
     in your CMS.
  4. Now create a CiviMail mailing in the normal way.
  5. You now need to use the {contact.checksum} token and the {contact.
     contact\_id} token to construct a link back to edit the profile you created:
     <http://www.myorganization.org/civicrm/profile/>
     edit?reset=1&gid=N&id={contact.contact\_id}&{contact.checksum}
  6. Substitute your website for <http://www.myorganization.org>.
  
  Perhaps there was a print error in the book because I have tried numerous variable options to get this working without joy.
  
  Any thoughts? Thanks
  
  EDIT: Added example below.
  
  <https://crm.example.com/civicrm/profile/edit?reset=1&gid=1&id=2798&5fb7dfc93d6b855d75659da64805ac82_1503574955_179>
  
  **Tags:** profile
  
  > **Comments:**
  > **username_1**: the construction differs depending on your cms. best info imo is at https://docs.civicrm.org/dev/en/master/framework/civimail/tokens/   why not paste what you constructed (without your domain if that needs to be kept private). Also check your permissions that anon have access to Custom Fields etc.  
  > **username_0**: Thanks @petednz-fuzion. I have added the example URL. Also, the Custom Fields is allowed too. I don't think the subdomain or the SSL certificate should affect this right? I would expect a variable name for the checksum but the instructions are unclear what that var should be.  
  > **username_2**: `{contact.checksum}` should expand to `cs=XXX`  Your example does not include `cs=`.  Was that a copying error or is that how it really is?  What version are you running?  You could try manually adding the `cs=` but it should be included automatically.  
  
  ---
  
  ## 3 answers
  
  ### Answer by username_1 on 2017-08-29. Score: 1
  
  The construction differs depending on your cms.
  
  Best info imo is at docs.civicrm.org/dev/en/master/framework/civimail/tokens
  
  You have pasted
  
  civicrm/profile/edit?reset=1&gid=1&id=2798&5fb7dfc93d6b855d75659da64805ac82\_1503574955\_179
  
  In point 5. you stated \*\* and the {contact. contact\_id}\*\* but i don't see that in your example.
  
  You need to have **cid={contact. contact\_id}** in the string so will not work
  
  
  ---
  
  ### Answer by username_3 on 2017-08-31. Score: 1
  
  As Pete says, your question (and Stack Exchange history) suggests you're using WordPress - but the example you added is using the Drupal URL construction.
  
  In addition to Pete's answer, there's also the [Fancy Tokens](https://civicrm.org/extensions/fancy-tokens) extension, which you can install from the in-app Extensions directory. It takes the pain out of this for you.
  
  
  ---
  
  ### Answer by username_4 on 2019-09-02. Score: 0
  
  You can use this link to allow user to update their profile without logging in:
  http://www.myorganization.org/mybasepage?page=CiviCRM&q=civicrm/profile/edit&reset=1&gid=2&id={contact.contact_id}&{contact.checksum}
  
  Please note that:
  
  www.myorganization.org is the URL where CiviCRM is installed
  mybasepage is the basepage of your CiviCRM installation (usually it's civicrm, but it may vary)
  gid=2 is the profile ID number
  
  (Found this solution here)
  
  
  ---
  
  