tag:blogger.com,1999:blog-48043156478035525472024-03-13T22:45:50.307-07:00iFreeTools BlogsBlog on the free business tools available at iFreeTools.comUnknownnoreply@blogger.comBlogger63125tag:blogger.com,1999:blog-4804315647803552547.post-23440172526269810922018-09-28T01:31:00.002-07:002018-09-28T01:31:41.906-07:00New mobile optimized user-interface for iFreeTools Creator<div dir="ltr" style="text-align: left;" trbidi="on">
We are glad to roll in a new version of <a href="https://creator-app.ifreetools.com/"><b>iFreeTools Creator</b></a> with mobile optimized responsive user-interface.<br />
<br />
Our new home page on desktop / laptops:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-VnodsE57vJzeS_7OuYIf-ltSTylR7cnjwA-cFD1XeM7E-iKYQ8jfhO-XwH45bp7y5zsdJtONB9uoXkTuXuP42uYQQJcZviD8o-v0ActH14Cl0z1a6Q2H3WkUg9hZ5Y1HWAIAb0EaXwM/s1600/free-online-database-app--home-page.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="768" data-original-width="1366" height="223" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-VnodsE57vJzeS_7OuYIf-ltSTylR7cnjwA-cFD1XeM7E-iKYQ8jfhO-XwH45bp7y5zsdJtONB9uoXkTuXuP42uYQQJcZviD8o-v0ActH14Cl0z1a6Q2H3WkUg9hZ5Y1HWAIAb0EaXwM/s400/free-online-database-app--home-page.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Our home page on mobile devices:</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiB11UQVXixRLl6QDkHZ5rCXv-t8-EbqCFZS767Q7ku37uCSZ0o11lcu_JxVAnMbGegempL7wgZLfLzPn-0KFJtz_gqNqJYBZaU5GFiLVfrkAQgn9UBN5KvLOSu_OnAIKuU9bjezp__LlY/s1600/free-online-database-app--home-page-on-mobile.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Free Online Database App - Home page on android mobile" border="0" data-original-height="1600" data-original-width="800" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiB11UQVXixRLl6QDkHZ5rCXv-t8-EbqCFZS767Q7ku37uCSZ0o11lcu_JxVAnMbGegempL7wgZLfLzPn-0KFJtz_gqNqJYBZaU5GFiLVfrkAQgn9UBN5KvLOSu_OnAIKuU9bjezp__LlY/s640/free-online-database-app--home-page-on-mobile.png" title="Free Online Database App - Home page on mobile" width="320" /></a></div>
<br />
<br />
Database record details page on mobile devices:<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihXtIMx0_HnHV9BpvKuTj7c7W1mMteyWtWY6hLHMcYiL4NwfQ5dxW7ihgzoIR8RUNcpEbPdYHW-ztburSUvxfbC4EPskHgxujVMxnscmQcIxNInmYm1oC_yuL9JLSpWel4tuIWRNfMTWk/s1600/free-online-database-app--record-details-page-on-mobile.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="800" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihXtIMx0_HnHV9BpvKuTj7c7W1mMteyWtWY6hLHMcYiL4NwfQ5dxW7ihgzoIR8RUNcpEbPdYHW-ztburSUvxfbC4EPskHgxujVMxnscmQcIxNInmYm1oC_yuL9JLSpWel4tuIWRNfMTWk/s640/free-online-database-app--record-details-page-on-mobile.png" width="320" /></a> </div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Database record add/edit form on mobile devices:</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqkZawJkNV_56nN21vyRbdu9HrRH3wAFpFly6QWKKfNrZzxBfhJl4j9_6yeI1c9E2eDMQwXkGc8Y2mc9WRpEV4LsnVsT3o_kUTPQHFfbMSD92wMvFpFU8sDX5MiAEjhWHGBaZWuEmAAjs/s1600/free-online-database-app--edit-form-on-mobile.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="800" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqkZawJkNV_56nN21vyRbdu9HrRH3wAFpFly6QWKKfNrZzxBfhJl4j9_6yeI1c9E2eDMQwXkGc8Y2mc9WRpEV4LsnVsT3o_kUTPQHFfbMSD92wMvFpFU8sDX5MiAEjhWHGBaZWuEmAAjs/s640/free-online-database-app--edit-form-on-mobile.png" width="320" /></a></div>
<br />
<br />
Feel free to share your feedback on the new user interface and we will refine this version further based on the same.<br />
<br />
You can still switch to the old version using the link in the footer.<br />
<br />
We are also been rolling out this new version to our paid single-tenant deployment customers and the process will be completed in a few more days. If you are a paid customer who has not yet received the upgrade and would like to try this out sooner, just send us an email and we will fast track the upgrade for you.<br />
<br />
<i>Looking to leverage the <b><a href="https://cloud.google.com/free/docs/always-free-usage-limits" rel="nofollow" target="_blank">Google Cloud always free quotas</a></b>? Get yourself/your-organization a single-tenant deployment of iFreeTools Creator, for an <a href="http://help.creator.ifreetools.com/2011/06/deployment-options-single-tenant.html"><b>exclusive virtual private cloud hosting</b></a> of your online database application. </i></div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4804315647803552547.post-52270325066897578732014-08-31T23:59:00.000-07:002014-09-01T00:20:58.457-07:00Using Scheduled Workflows for Recurring / Periodic Tasks<div dir="ltr" style="text-align: left;" trbidi="on">
While iFreeTools already has support for <a href="http://blogs.ifreetools.com/2012/03/rule-based-email-triggers-to-automate.html">database-trigger based workflow execution</a>, which can execute tasks like sending out email or SMS, adding of new records or editing existing records in database and for re-indexing records (to recompute formula field values), there can be automation scenarios wherein some workflows need to be triggered periodically, for a specific set of records.<br />
<br />
Examples of such scenario can include,<br />
<br />
<ul style="text-align: left;">
<li>sending out emails for birthdays,</li>
<li>sending an SMS when the expiry date is nearing,</li>
<li>recomputing formula fields of specific records (for example the formula field for <b><i>Age </i></b>can be recomputed for records which have <b><i>Date of Birth </i></b>on that day).</li>
</ul>
<br />
To enable automation for such scenarios, we have enabled support for Scheduled Workflows.<br />
<br />
As a specific example, let us consider a subscriber database which needs to be notified about the upcoming renewal date for their subscription.<br />
<br />
The actions to perform in this example, has an email configured to be sent to the subscribers about the upcoming renewal date, like shown below.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNBmD2vO8_AZ0lLUZ0Jx8au0kChZrqkyKsvSF0KdzRV3l1sEosa48tNMyt57bGK_3Vaz9EWDtFUek7pOPAFma8eAb1aSt8wKqgM6Qn-SO75KHySAZRw3n83gaTfYCQFmph1qBFKxrIag8/s1600/Specifying-tasks-for-a-executing-periodic-recurring-scheduled-workflows.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNBmD2vO8_AZ0lLUZ0Jx8au0kChZrqkyKsvSF0KdzRV3l1sEosa48tNMyt57bGK_3Vaz9EWDtFUek7pOPAFma8eAb1aSt8wKqgM6Qn-SO75KHySAZRw3n83gaTfYCQFmph1qBFKxrIag8/s1600/Specifying-tasks-for-a-executing-periodic-recurring-scheduled-workflows.png" height="196" width="400" /></a></div>
<br />
The full work-flow configuration for the sample scheduled workflow is given below, with the relevant sections highlighted in green.<br />
<br />
Apart form normal workflow configuration details like <b><i>Workflow Name</i></b>, <b><i>Description</i></b>, <b><i>Entity </i></b>and <b><i>Status</i></b>, for the Scheduled Workflow configuration, the <b><i>Trigger During</i></b> value needs to be specified as <i>Schedule</i>. The other non-relevant sections of the configuration page can be left with the default values.<br />
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLAqWWdohVFHPHwPKW-ShRZFJEYpDkxgZzbtXSSgwMoOZ_Qq1ilgkOOVzzVvN1RmkLS_xaltcE_rt8w9_ddlTU-peim0uLu-TVuMROW1Lg5FSTqErlc6HBZenyoLuI4zbboy9jGKFvwIM/s1600/Scheduled-Workflows-base.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLAqWWdohVFHPHwPKW-ShRZFJEYpDkxgZzbtXSSgwMoOZ_Qq1ilgkOOVzzVvN1RmkLS_xaltcE_rt8w9_ddlTU-peim0uLu-TVuMROW1Lg5FSTqErlc6HBZenyoLuI4zbboy9jGKFvwIM/s1600/Scheduled-Workflows-base.png" width="459" /></a></div>
<br />
Under the <b>Schedule Setting</b> section, we have specified the <b><i>Schedule Interval </i></b>to be <i>Every Day</i>, but since we want this to execute only on the 1st of every month, we add a <b><i>Schedule Criteria Expression </i></b>as <span style="background-color: yellow;"><i>day(now()) == 1 </i></span>. On the other days, the expression will evaluate to <i>false </i>and will not fetch the records to execute the actions.<br />
<br />
The <b><i>Records To Fetch When Scheduled </i></b>specifies that only the records which have the <b><i>Renewal Date </i></b>in the next month needs to be fetched, for which the specified actions will be executed.<br />
<br />
All actions performed during the Scheduled Workflows will be audited under scheduled-workflow-user account.<br />
<br />
Scheduled Workflows will be a premium feature available for paid customers. For efficient use of computing resources, the scheduling options will be disabled by default in the paid single-tenant deployments and can be enabled on request.<br />
<br />
Hope you find this feature. Feel free to let us know your feedback on how we can enable more such automation for you.</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4804315647803552547.post-49475625503564624372014-07-31T23:25:00.001-07:002014-07-31T23:25:38.568-07:00Enabling "Import" and "Unlock any record" permissions for non-admin users<div dir="ltr" style="text-align: left;" trbidi="on">
Until now, we had restricted the ability to <a href="http://blogs.ifreetools.com/2010/03/export-import-data-as-csv-bulk-delete.html">import data (as CSV files)</a> and the ability to being able to <a href="http://blogs.ifreetools.com/2012/09/enable-record-locking-to-allow-users-to.html">unlock any of the locked records</a>, to admin users alone. Due to the nature of these operations, we believed that such a restriction would be necessary.<br />
<br />
Some customers wanted to enable these permissions to trusted users, but at the same time did not want to provide full admin permissions, considering those users to be in an intermediate permission level. Based on their requests, we have now made it possible to enable non-admin users to import data and to be able to unlock any records <a href="http://blogs.ifreetools.com/2010/12/access-control-up-to-field-level-now.html">using Auth Profiles</a>.<br />
<br />
While <b><i>Import</i></b> permission will be configurable for all entities in the Auth Profile form, the <b><i>Unlock any record</i></b> permission will be available for configuration only for entities which have <a href="http://blogs.ifreetools.com/2012/09/enable-record-locking-to-allow-users-to.html">record locking</a> enabled.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqyI_wNhnAKjV_cghMIGGfVUqpmI-xHxKEGz7w0-R9eTrrGUsP3ScvMT_PTObwRoi1thkB_MAsWzNq6iWgdvVmuerXDnOWHPKKg9WbvNL6acHudb3yzNvUvaJVEx4MXPc9_KWv2kWXfS0/s1600/enabling-permission-to-import-and-to-unlock-any-record-in-online-database-application.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqyI_wNhnAKjV_cghMIGGfVUqpmI-xHxKEGz7w0-R9eTrrGUsP3ScvMT_PTObwRoi1thkB_MAsWzNq6iWgdvVmuerXDnOWHPKKg9WbvNL6acHudb3yzNvUvaJVEx4MXPc9_KWv2kWXfS0/s1600/enabling-permission-to-import-and-to-unlock-any-record-in-online-database-application.png" height="400" width="390" /></a></div>
<br />
<br />
Hope you find the new features useful. Feel free to let us know your feedback on how we can make things better for you in <a href="http://creator.ifreetools.com/">your online database application creator</a>. </div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4804315647803552547.post-52071545725475428622014-06-30T23:58:00.000-07:002014-07-01T03:39:02.792-07:00Upload files of size up to 32 MB, in your online database<div dir="ltr" style="text-align: left;" trbidi="on">
iFreeTools Creator, <a href="http://creator.ifreetools.com/">your online database application builder</a> built for hosting on Google App Engine, has had <a href="http://blogs.ifreetools.com/2010/09/image-fields-now-supported-in-free.html">support for image fields</a> since the early days. These image fields used Google App Engine's datastore to store the files. Due to the design of the App Engine datastore, the maximum file size for these fields was limited to 1 MB. We had an automatic size-reduction enabled for these fields, to reduce the file sizes of the uploaded files. This field has been serving our free-users and our paid-customers well until now.<br />
<br />
For bigger files, there was always the option of storing them within Google Drive and <a href="http://blogs.ifreetools.com/2014/05/attach-files-or-folders-from-google.html">attaching the files from Google Drive to database records</a>. But these attachments are treated different from the normal fields. So, some clients have been requesting support for bigger file uploads.<br />
<br />
Based on a prioritization request from our client, we have now enabled support for bigger file uploads for our paid single-tenant deployment customers.<br />
<br />
Paid deployments will now have an option to add new attributes with <b><i>Image / File Upload (Big) </i></b>data-type.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLcOZrGblSzk1oPfEYv0MY2THl4nGXkfmTZ9A9OQvRszPSBXlXrByZRpUacnha9dyuvJ2Z1LvVn3wYEOST_Cc6wvouqOUkaAsX6Vqw5OfGRyjU9_utjMeGiYWFtYUzGMdB8xXfUMbLWis/s1600/ifreetools-image-file-upload-field-32-MB-blobstore-google-app-engine.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLcOZrGblSzk1oPfEYv0MY2THl4nGXkfmTZ9A9OQvRszPSBXlXrByZRpUacnha9dyuvJ2Z1LvVn3wYEOST_Cc6wvouqOUkaAsX6Vqw5OfGRyjU9_utjMeGiYWFtYUzGMdB8xXfUMbLWis/s1600/ifreetools-image-file-upload-field-32-MB-blobstore-google-app-engine.png" height="130" width="400" /></a></div>
<br />
<br />
These new attributes will store the file contents in Google App Engine's blobstore. The blobstore allows files of sizes up to 32 MB to be uploaded, <b>utilizing the 5 GB free blobstore quota</b>, offered by Google for all Google App Engine applications.<br />
<br />
Additional storage will be billed at $0.026/GB/month (payable to Google) :<br />
<a href="https://developers.google.com/appengine/pricing#Billable_Resource_Unit_Costs">https://developers.google.com/appengine/pricing#Billable_Resource_Unit_Costs</a><br />
<br />
We have started rolling in this feature for our paid customers. If you are a paid customer of iFreeTools, you should see this feature available in your deployment very soon.<br />
<br />
Do you have a feature request for iFreeTools that you want to be prioritized? Get in <a href="http://creator.ifreetools.com/feedback-form">touch with us</a>, so that we take this forward.</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4804315647803552547.post-23168170210356774702014-05-27T00:11:00.000-07:002014-05-27T00:11:40.675-07:00Attach files or folders from Google Drive to your database records<div dir="ltr" style="text-align: left;" trbidi="on">
Following our recent <a href="http://blogs.ifreetools.com/2014/04/back-end-changes-in-ifreetools.html">back-end changes in iFreeTools</a>, we are now glad to enhance our Google Docs attachment feature, to now support attaching any files/folder from within Google Drive.<br />
<br />
Earlier, it was possible to attach limited file types alone from Google Docs (document, spreadsheet, presentation and PDF), like shown below :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQdjFhs3Hv0EG-5UQMqD4uE3292i26MMuKd73sOgnwPuwXVmHXnAGUD6OpIv3UAl5WvGfPl83ZNBIjnaeIaJlvgWv-64YeYwgDLmGQvqTxZ_f7-cbXBLDzkhb4R66TSUDxUGgN2nQ1s7U/s1600/Old-version-of-Google-Docs-attachments-feature-in-iFreeTools.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQdjFhs3Hv0EG-5UQMqD4uE3292i26MMuKd73sOgnwPuwXVmHXnAGUD6OpIv3UAl5WvGfPl83ZNBIjnaeIaJlvgWv-64YeYwgDLmGQvqTxZ_f7-cbXBLDzkhb4R66TSUDxUGgN2nQ1s7U/s1600/Old-version-of-Google-Docs-attachments-feature-in-iFreeTools.png" height="180" width="400" /></a></div>
<br />
<br />
With the recent upgrade and subsequent changes, we have moved to using latest version of Google services and have integrated with Google Drive API.<br />
<br />
This has enabled us to allow attaching any of the files or folders from within Google Drive, including Microsoft file formats, Google drawings, standard images files and zip files.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinHfXcf7BH1NMP2h0Fc_00oCbIL28cuJ0Qmu1ZKK1IOBHkTMmqhrWj8zkUOwBRcAV7R6IwepBaGJQH4YBoQrugtptRD0iw6wuX6WArWkiANFyt4hTUniCv7ZjhQXYafFtKz4jl4_-stFo/s1600/New-version-of-Google-Drive-attachments-feature-in-iFreeTools.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinHfXcf7BH1NMP2h0Fc_00oCbIL28cuJ0Qmu1ZKK1IOBHkTMmqhrWj8zkUOwBRcAV7R6IwepBaGJQH4YBoQrugtptRD0iw6wuX6WArWkiANFyt4hTUniCv7ZjhQXYafFtKz4jl4_-stFo/s1600/New-version-of-Google-Drive-attachments-feature-in-iFreeTools.png" height="262" width="400" /></a></div>
<br />
<br />
<br />
The attached files or folders will get listed under the database record's details page.<br />
<br />
Like in the earlier implementation, the attachment process <b><i>does not</i></b> duplicate the file contents, but creates an association with the database record within iFreeTools, so that you can access the latest version from within the record's details page. The sharing permissions configured for the file/folder in Google Drive will hence remain enforced.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFdhtHmUs9LRKnKZsfFcDczaIr_tQyywbuYlDs7S46l3ZAv51ugsVRQ8VFreBfXl3_mQ2f1SrXMAyOdJFQs1NBVhZGx6G9fTlFObs3WI8BpTp1VwY0tFUFU5H0hzmNK0pVp86Zab7Tl60/s1600/Google-Drive-attachments-listed-in-database-records-details-page.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFdhtHmUs9LRKnKZsfFcDczaIr_tQyywbuYlDs7S46l3ZAv51ugsVRQ8VFreBfXl3_mQ2f1SrXMAyOdJFQs1NBVhZGx6G9fTlFObs3WI8BpTp1VwY0tFUFU5H0hzmNK0pVp86Zab7Tl60/s1600/Google-Drive-attachments-listed-in-database-records-details-page.png" height="180" width="400" /></a></div>
<br />
Hope you like the new feature. Feel free to send in your feedback on how you think we can make things better for you in iFreeTools.<br />
<br /></div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4804315647803552547.post-28649855340418795402014-04-09T06:39:00.002-07:002014-04-09T06:39:47.959-07:00Back-end changes in iFreeTools<div dir="ltr" style="text-align: left;" trbidi="on">
We have recently invested in migrating iFreeTools code to the latest computing environment on Google App Engine. As a result of these changes, iFreeTools is now able to utilize computing resources in a better way, than it was possible earlier.<br />
<br />
The new version having these changes has already been rolled out in our free multi-tenant deployment, hosted at <a href="http://creator.ifreetools.com/">http://creator.ifreetools.com</a> and we are in the progress of rolling this version for all single-tenant deployment customers.<br />
<br />
<b>What these back-end changes will mean for you :</b><br />
<br />
If you are a user of the free multi-tenant deployment, you will be glad that we can serve more of the growing number of free applications. You may have also already experienced lesser latency than earlier, in the recent days.<br />
<br />
If you are paid customer, using our single-tenant deployment option, you will be able serve more users with lower computing instance hours. This is now possible because each computing instance can handle more than one request at the same time (multi-threaded processing).<br />
<div>
<br /></div>
<div>
These back-end changes also enable other possibilities and new features, including some features which have been oft requested by our users. </div>
<div>
<br /></div>
<div>
Keep following our blogs for more details on these new features.</div>
</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4804315647803552547.post-59993345546965971882013-11-30T03:55:00.000-08:002015-10-21T06:23:16.749-07:00Assigning colors to database records, for use in Calender views<div dir="ltr" style="text-align: left;" trbidi="on">
We have now enabled an option to show entries in calendar view with configurable background and text colors in your favorite <a href="http://creator.ifreetools.com/">online database builder</a>.<br />
<br />
To use this feature, you need to add 2 new attributes and provide them with aliases as <i style="font-weight: bold;">backgroundColor</i> and <i style="font-weight: bold;">textColor</i>. You can assign the colors directly in forms (selecting from a list of choice-values) or you can assign them automatically using formula.<br />
<br />
When the calendar views are displayed, iFreeTools will check to see if there is an attribute with alias as <i style="font-weight: bold;">backgroundColor</i> and <i style="font-weight: bold;">textColor</i> within the record, and if so, it will use those attribute's values for the calendar rendering.<br />
<br />
As an example, let us consider a database of issues, reported by customers. If the issue records had a <b><i>Severity</i></b> attribute, which can take values as <i>Critical, Major, Minor, </i>and <i>Cosmetic</i> and if we wanted to view the entries in the calendar, such that the background color is based on this <b><i>Severity</i></b>, using the following colors for those severity values :<br />
<br />
Severity : <span style="background-color: red;">Critical</span>, <span style="background-color: orange;">Major</span>, <span style="background-color: yellow;">Minor</span>, <span style="background-color: cyan;">Cosmetic</span><br />
<span style="background-color: cyan;"><br /></span><span style="background-color: white;">Then, we can add formula attributes to set the required color values for the records, so that they are used in the calendar view. Our sample app to showcase this new feature will similar to the <a href="http://blogs.ifreetools.com/2010/03/building-simple-bug-tracker-application.html">issue tracker application</a> we had built in one of the earlier walk-through, with the following attributes :</span><br />
<ul style="text-align: left;">
<li><b>Title </b>attribute as <i>Single-line Text</i>.</li>
<li><b>Description </b>attribute as <i>Multi-line Text.</i></li>
<li><b>Steps to reproduce</b> attribute as <i>Multi-line Text.</i></li>
<li><b>Severity</b> attribute as <i>Multi-line Text</i> with choice values <span style="font-style: italic;">Critical, Major, Minor, Cosmetic</span><b style="font-style: italic;"> </b>& alias as<b style="font-style: italic;"> </b><span style="font-style: italic;">severity</span><b style="font-style: italic;">.</b></li>
<li><b>Background Color</b> attribute as <i>Single-line Text</i> with alias as<span style="font-style: italic;"> backgroundColor </span>& formula expression as :<br /><span style="font-family: inherit; font-style: italic;">switch(severity == "Critical", "red", severity == "Major","orange", severity == "Minor", "yellow", severity == "Cosmetic", "lightblue")</span>.</li>
<li><b>Text Color</b> attribute as <i>Single-line Text</i> with alias as<span style="font-style: italic;"> textColor</span> & formula expression as :<br /><span style="font-style: italic;">iif(severity == "Critical", "white", "black")</span>.</li>
<li><b>Status</b> attribute as <i>Single-line Text</i> with choice value as <i>New, Accepted, Closed</i> &<i> </i>alias as<i> status</i>.</li>
<li><b>Tester</b> attribute as <i>Lookup field (Reference)</i>, with <b><i>Refers To </i></b>as <i>User</i>.</li>
<li><b>Date Logged</b> attribute as <i>Date</i> with formula expression as :<br /> <i>iif(dateLogged, dateLogged, today()).</i></li>
<li><b>Date Closed</b> attribute as <i>Date</i> with formula expression as :<br /> <i>iif(status == "Closed", iif(dateClosed, dateClosed, today()), None).</i></li>
</ul>
<div>
Now assuming we also wanted to mark the closed issue as green, the formula for <b>Background Color </b>can be changed to be similar to the one given below :<br />
<br />
<i>iif(status == "Closed", "green", switch(severity == "Critical", "red", severity == "Major", "orange", severity == "Minor", "yellow", severity == "Cosmetic", "lightblue"))</i><br />
<i><br /></i>
<span style="background-color: white;">The configuration of the Attributes is given below for reference:</span><br />
<span style="background-color: white;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-Dp-zjBEG2Fo/UpnGlGPhHqI/AAAAAAAAAFE/EETdT6efG8o/s1600/all-attributes-entries-for-issues-online-database.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="291" src="http://2.bp.blogspot.com/-Dp-zjBEG2Fo/UpnGlGPhHqI/AAAAAAAAAFE/EETdT6efG8o/s1600/all-attributes-entries-for-issues-online-database.png" width="400" /></a></div>
<div class="separator" style="clear: both;">
<span style="background-color: white;"><br /></span></div>
We can now proceed to add entries into the issue records and they would get assigned with background and text colors based on the formula expressions we have specified.<br />
<br />
The following image shows the calender view with some sample entries having the configured background and text colors.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-b2wTeX-uDto/UpnNEALuniI/AAAAAAAAAFU/iq7pI6j3flA/s1600/creating-calender-view-online-database.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="151" src="http://3.bp.blogspot.com/-b2wTeX-uDto/UpnNEALuniI/AAAAAAAAAFU/iq7pI6j3flA/s1600/creating-calender-view-online-database.png" width="400" /></a></div>
<br />
<span style="background-color: white;">Existing entries will have to be re-indexed once (from under More Actions > Re-index, in the list views) to have the formula attributes updated.</span><br />
<span style="background-color: white;"><br /></span>
<span style="background-color: white;">Hope you like the new feature. Feel free to let us know your feedback and suggestions.</span></div>
</div>
Anonymousnoreply@blogger.com0tag:blogger.com,1999:blog-4804315647803552547.post-89981296244258561422013-10-29T03:04:00.000-07:002013-10-29T03:28:11.661-07:00Specifying default values for form fields, using expressions<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="ltr" style="text-align: left;" trbidi="on">
<div>
iFreeTools Creator, your <a href="http://creator.ifreetools.com/">easy web-based database software</a> built for hosting on Google App Engine, now supports specifying default values for attributes in forms. The default values can be configured using the <b><i>Default Value Expression </i></b>in <b>Attribute </b>definition.<br />
<br /></div>
<div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-85ZuNgDnQhY/Um-G7W4tSXI/AAAAAAAAABE/U2jCpUYbqq4/s1600/default-value-expression-in-online-database-application.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="182" src="http://4.bp.blogspot.com/-85ZuNgDnQhY/Um-G7W4tSXI/AAAAAAAAABE/U2jCpUYbqq4/s400/default-value-expression-in-online-database-application.png" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
Expressions should return the result in the expected data-type. For details on using expressions, you may refer to <a href="http://help.creator.ifreetools.com/2010/06/using-expressions-for-formula-fields.html">our help docs</a>.<br />
<br />
Sample default value expression for each data type are given below:<br />
<br />
<table border="1">
<tbody>
<tr><td><div style="text-align: center;">
<h3>
<span style="color: #222222;"><span style="font-family: inherit; white-space: pre-wrap;"><b>Data Type</b></span></span></h3>
</div>
</td><td><div style="text-align: center;">
<h3>
<b>Examples</b></h3>
</div>
</td></tr>
<tr><td valign="top"><b><span style="font-family: inherit;">Single/Multi-line Text</span></b><br />
<br /></td><td><ul>
<li><span style="font-family: Courier New, Courier, monospace;">"Velachery"</span><br /><span style="font-family: inherit;">Text values have to be provided within quotes.</span></li>
<li><span style="font-family: Courier New, Courier, monospace;">val_from(user(), "Name")</span><br />to set the currently logged-in user's name.</li>
<li><span style="font-family: Courier New, Courier, monospace;">val_from(user(), "Email Id")</span><br />to set the currently logged-in user's email-id.</li>
</ul>
</td></tr>
<tr><td valign="top"><span style="line-height: 16px;"><b>Yes/No checkbox (Boolean)</b></span><br />
<span id="docs-internal-guid-67239a65-feef-1474-f0c4-eaee8cc5073c" style="line-height: 16px;"></span><br />
<div>
<br /></div>
</td><td><ul>
<li><span style="background-color: white; color: #222222; font-family: 'Courier New', Courier, monospace; line-height: 1.35; white-space: pre-wrap;">True</span></li>
<li><span style="background-color: white; color: #222222; font-family: 'Courier New', Courier, monospace; line-height: 1.35; white-space: pre-wrap;">False</span></li>
<li><span style="background-color: white;"><span style="color: #222222; font-family: Courier New, Courier, monospace;"><span style="line-height: 1; white-space: pre-wrap;">val_from(user(),"Role") == "admin"</span><span style="line-height: 16px; white-space: pre-wrap;">
</span></span></span><span style="background-color: white;">to mark as Yes, if the current user has admin access.</span></li>
</ul>
<div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;">
<span id="docs-internal-guid-67239a65-02c9-3d5b-3453-0418eed8a156"><span style="background-color: white; color: #222222; font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"></span></span></div>
<span id="docs-internal-guid-67239a65-fef0-f00e-4406-c69e976d01f4">
</span></td></tr>
<tr><td valign="top"><b>Number Integer/Decimal numbers</b></td><td><ul>
<li><span style="font-family: Courier New, Courier, monospace;">1</span></li>
<li><span style="font-family: Courier New, Courier, monospace;">-2</span></li>
<li><span style="font-family: Courier New, Courier, monospace;">33.5</span></li>
<li><span style="font-family: Courier New, Courier, monospace;">-44.75</span></li>
<li><span style="font-family: Courier New, Courier, monospace;">val_from(fetch_one("Fee Details", "Year":year(), "Month":month()}), "Fees"))</span><br />to fetch the values form an existing database record, in this case, from <b>Fee Details</b> entity, which matches the condition of having the <b><i>Year </i></b>attribute as the current year and the <b><i>Month </i></b>attribue as current month. From this matching record, we get the default-value from the <b><i>Fees</i></b> attribute.</li>
</ul>
</td></tr>
<tr><td valign="top"><b>Single line text - Choice Value</b><br />
<br /></td><td><ul>
<li><span style="font-family: 'Courier New', Courier, monospace;">"Cash"</span><br />Any of the choice values can be provided. For example, the above is valid if the choice values were : <span style="font-family: Courier New, Courier, monospace;">"Cheque", "Cash", "Bank Transfer"</span></li>
</ul>
</td></tr>
<tr><td valign="top"><b>Date</b></td><td><ul>
<li><span style="font-family: 'Courier New', Courier, monospace;">today()</span></li>
<li><span style="font-family: 'Courier New', Courier, monospace;">today() + timedelta(5)</span><br />to set the date value as 5 days from the current date.</li>
</ul>
</td></tr>
<tr><td valign="top"><b>Date and Time</b></td><td><ul>
<li><span style="font-family: 'Courier New', Courier, monospace;">now()</span></li>
<li><span style="font-family: 'Courier New', Courier, monospace;">now() + timedelta(0,3600*10)</span><br />to set the date-time value as 10 hours from the current date-time.</li>
</ul>
</td></tr>
<tr><td valign="top"><b>Image</b></td><td><ul>
<li><span style="font-family: 'Courier New', Courier, monospace;">key_id(val_from(fetch_one("Default Values",{}), "Default Profile Image"))</span><span style="font-family: Courier New, Courier, monospace;"><br /></span>to fetch the image form an existing database record, in this case, from <b>Default Values</b> entity, having an image-attribute with name as <b><i>Default Profile Image</i></b>.</li>
</ul>
</td></tr>
<tr><td valign="top"><b>Geographical Location (Geo Point)</b></td><td><ul>
<li><span style="font-family: Courier New, Courier, monospace;">"13.1207829,80.2377078"</span> <br />in case you know the co-ordinates of a specific location, the value has to be provided within quotes.</li>
<li><span style="font-family: Courier New, Courier, monospace;">val_from(fetch_one("Default Values",{}), "Default Location")</span> <br />to fetch the location form an existing database record, in this case, from <b>Default Values</b> entity, having an geo-point-attribute with name as <b><i>Default Location</i></b>.</li>
</ul>
</td></tr>
<tr><td valign="top"><b>List (with string values)</b></td><td><ul>
<li><span style="font-family: 'Courier New', Courier, monospace;">["English", "Spanish", "French"]</span></li>
<li><span style="font-family: Courier New, Courier, monospace;">val_from(fetch_one("Default Values",{}), "Default Languages")</span><br />to fetch the values from an existing database record, in this case, from <b>Default Values </b>entity, having an list-attribute with name as <i><b>Default Languages</b></i>.</li>
</ul>
</td></tr>
<tr><td valign="top"><b>Lookup field (Reference)</b></td><td><ul>
<li><span style="font-family: Courier New, Courier, monospace;">key_id(fetch_one("Teacher",{"Name":"John Smith"}))</span><br />to fetch the values from an existing database record, in this case, from the <b>Teacher</b> entity, having <b><i>Name </i></b>as <i>John Smith</i>.</li>
</ul>
</td></tr>
</tbody></table>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<br />
<div>
Hope you like our new feature. If you need assistance in using this feature or if you have suggestions, feel free to use the feedback form in our application.</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
</div>
Anonymousnoreply@blogger.com0tag:blogger.com,1999:blog-4804315647803552547.post-78266285905551530482013-06-30T23:58:00.001-07:002013-11-19T05:50:14.165-08:00What's Cooking : Internationalization & Localization support<div dir="ltr" style="text-align: left;" trbidi="on">
We are glad to share the news that iFreeTools will soon be supporting internationalization and localization.<br />
<br />
Once available, you will be able to select the language in the App Settings and the application will be rendered using the selected language.<br />
<br />
For the first cut, we are enabling support for Tamil, a south-Indian language, which we have been using in our testing. The image below shows the Add Attribute form in Tamil.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcejkfZOeVkt_OwpEWE7hIHrAcJH_UgYp_uY7MxC3wkj8ACrMvXy6bjbqVAgVevbW1LTndgvv6QanBM0evUFkBFr5wgOxNEkORp10T6_J89CBJBdHCTPtb574AwCvX-Xjm5pdN26n_OaA/s974/add-attribute-in-tamil.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="256" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcejkfZOeVkt_OwpEWE7hIHrAcJH_UgYp_uY7MxC3wkj8ACrMvXy6bjbqVAgVevbW1LTndgvv6QanBM0evUFkBFr5wgOxNEkORp10T6_J89CBJBdHCTPtb574AwCvX-Xjm5pdN26n_OaA/s400/add-attribute-in-tamil.png" width="400" /></a></div>
<br />
<br />
You will be able to try the Tamil language in our <a href="http://labs.ifreetools.com/">Labs set up</a> currently and the changes which will make it into the other deployments very soon.<br />
<a href="http://www.blogger.com/blogger.g?blogID=4804315647803552547" name="help_translate"><br /></a>
<b>Help translate iFreeTools and get a $90 discount* on your single-tenant deployment!</b><br />
<br />
If your language is not already supported in iFreeTools Creator and if you are interested in helping us support the same, feel free to get in touch with us for the language mapping file. Once the translation is completed and imported into your single-tenant deployment, you should be able to have the application in your language.<br />
<br />
<h3 style="text-align: left;">
<b>Update : </b></h3>
<br />
<a href="http://blogs.ifreetools.com/2013/06/whats-cooking-internationalization.html#Spanish" name="Spanish"></a>
<b>Spanish language support : </b><br />
<br />
Our effort to support multiple-languages was triggered by <a href="https://plus.google.com/100770725584980933133">Ms.Belén Lara's</a> detailed blog post on iFreeTools Creator, which is equivalent to a quick-start guide in Spanish : <a href="http://solucionesenredguiapara.blogspot.com/2013/03/crear-una-base-de-datos-on-line.html">...crear una Base de Datos on-line. iFreeTools</a>.<br />
<br />
After we added support for multiple languages, she has also provided the Spanish translation for the application. Coming from a technologically savvy database user, we believe her translations should work out well for the Spanish users of our application.<br />
<br />
Thank you, Ms.Belén Lara!<br />
<br />
<a href="http://blogs.ifreetools.com/2013/06/whats-cooking-internationalization.html#Italian" name="Italian"></a>
<b>Italian language support : </b><br />
<br />
We have rolled-in Italian language support in iFreeTools Creator, thanks to the efforts of <a href="https://plus.google.com/102910885565040807723">Mr.Adriano Caresani</a>. If you are looking to build your online database application and would like hire an Italian-speaking consultant, you should get in touch with Adriano.<br />
<br />
Thank you, Adriano!<br />
<br />
<hr />
<br />
<span style="color: #999999;"><i>*Terms and conditions, for this offer :</i></span>
<br />
<ul style="text-align: left;">
<li><span style="color: #999999;"><i>The compensation for the translation mapping file, which will become a property of iFreeTools, will be provided in the form of discount to subscription fees alone.</i></span></li>
<li><span style="color: #999999;"><i>This discount is applicable for one paid, single-tenant deployment and towards the first year subscription fee alone.</i></span></li>
<li><span style="color: #999999;"><i>Even if the language mapping is already available with us, translation to popular country-specific dialects may still be eligible for a $45 discount.</i></span></li>
</ul>
<div>
<span style="color: #999999;"><i>The terms and conditions of this offer can be refined / altered / the offer itself might be withdrawn at any time. You are requested to kindly get in touch with us using <a href="http://creator.ifreetools.com/feedback-form">the feedback form</a>, to know if you can avail this offer.</i></span></div>
<div>
<br /></div>
</div>
Unknownnoreply@blogger.com7tag:blogger.com,1999:blog-4804315647803552547.post-18684884595678768202012-12-16T07:01:00.000-08:002012-12-16T09:10:03.255-08:00Enabling fine-grained Public Access to your Online Database<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQxo1dtOwVEr1f3HksWYIwKY8UGagXhz0ipjgXe-aQseM3zBOivKEI9RputqNJ3GttLadKLoRSf-qbIY3Wyxn3wdP8oFQRaVUg07XXZOTBiLUYyUdznhVaCnEWHPIKpJ-ebn7_NiRC_uk/s1600/enable-public-access-to-online-database.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="130" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQxo1dtOwVEr1f3HksWYIwKY8UGagXhz0ipjgXe-aQseM3zBOivKEI9RputqNJ3GttLadKLoRSf-qbIY3Wyxn3wdP8oFQRaVUg07XXZOTBiLUYyUdznhVaCnEWHPIKpJ-ebn7_NiRC_uk/s200/enable-public-access-to-online-database.png" width="200" /></a></div>
A lot of our users have been requesting an option to enable publishing of selected subset of data from their <a href="http://creator.ifreetools.com/">online database application</a>, which they have hosted on their Google App Engine account and mapped to their Google Apps domain.<br />
<br />
This may be for use-cases like sharing the knowledge-base section from the online database application or may be, to allow users to view a directory of some sort, without having to ask them to login into the application, using their Google / Yahoo! / Google Apps user account.<br />
<br />
We have now enabled this public-access facility as a premium feature in iFreeTools, available for paid single-tenant deployments. Preview of the feature is also made available in the free multi-tenant deployment at <a href="http://creator.ifreetools.com/">http://creator.ifreetools.com</a>, which will work like in the paid deployment, except that it will list limited data, so that you can try out the feature before you sign-up for the paid deployment.<br />
<br />
To enable public access to your database, you will have to :<br />
<ol style="text-align: left;">
<li>Define a new <a href="http://blogs.ifreetools.com/2010/12/access-control-up-to-field-level-now.html">Auth Profile</a> with permissions set for the <b><i>View</i></b> operation and select the fields which you would like to make visible for public access. Other permissions set for <b><i>Add </i></b>/ <b><i>Edit</i></b> / <b><i>Delete</i></b> / etc.,. will be ignored, when this auth-profile is used in the context of public-access.</li>
<li>Add a new user with email-id as <b>public-read-only-user@ifreetools.com</b>, associating the auth-profile</li>
</ol>
<div>
That is it!<br />
<br />
You can now access the application by tweaking your URL to use a <span style="font-family: Courier New, Courier, monospace;">/x/</span> instead of <span style="font-family: Courier New, Courier, monospace;">/b/</span>. That is, if the direct link to your application instance is..<br />
<span style="font-family: Courier New, Courier, monospace;">http://creator.ifreetools.com<span style="background-color: yellow;">/<b>b</b>/</span>12341234</span><br />
<br />
then, the public access for this web-application will be available at..<br />
<span style="font-family: Courier New, Courier, monospace;">http://creator.ifreetools.com<span style="background-color: yellow;">/<b>x</b>/</span>12341234</span><br />
<br />
All "write" operations (<b><i>Add</i></b> / <b><i>Edit</i></b> / <b><i>Delete</i></b>) are disabled for the public-access. Your users can still use the <a href="http://blogs.ifreetools.com/2012/02/create-free-online-web-forms-to-embed.html">embed-able public web-forms</a>, to enable adding new records into the database.<br />
<br />
All the public access pages will be marked with a <b><i>noindex </i></b>and <b><i>nofollow</i></b> meta-tag, so the contents would not be indexed by crawlers which follow this meta directive. This meta-tag can be removed on request, in paid single-tenant deployments.<br />
<br />
Hope you like this new feature. Feel free to use the feedback form in the application and let us know how we can help you meet more of your business use-cases with <a href="http://creator.ifreetools.com/">iFreeTools</a>.</div>
</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4804315647803552547.post-34167335444744274912012-10-31T23:58:00.001-07:002012-11-01T02:27:03.410-07:00Twilio integration : Trigger SMS messages from your online database<div dir="ltr" style="text-align: left;" trbidi="on">
We are glad to add another premium feature in your favorite <a href="http://creator.ifreetools.com/">online database application</a> for Google App Engine. iFreeTools is now integrated with <a href="http://www.twilio.com/sms" rel="nofollow">Twilio</a> to send out SMS messages, triggered as part of workflow actions (database change triggers) or from within the list view (manual trigger).<br />
<br />
This facility is available as a preview in the free version, where the messages will get added as Notification Tasks with <i>Preview</i> status, while in the paid <a href="http://help.creator.ifreetools.com/2011/06/deployment-options-single-tenant.html">single-tenant deployment</a> (starts at <a href="http://creator.ifreetools.com/pricing">$99/year</a>), the messages would be sent out to the mobile numbers with the task's status getting marked as <i>Completed</i>.<br />
<br />
To make use of this SMS facility, you will have to first configure your <b>App Settings</b> (under Admin), to provide the <b><i>Account SID</i></b> and the <b><i>Auth Token</i></b> from Twilio, as shown below. If you also have a short-code configured for your use, you can specify the same to be used as the <b><i>Sender ID</i></b>, else you can provide your Twilio number (listed under the Numbers tab)<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj44dDA3_v9s8PIdsS1T49xvBGkEtF6RThB-kiTGeJLjuDvub8HEey5Ng6MpDdxa7Zjv2QvuRNpTO3hc3bsFYY8bToRfzGPJdUQLYa2QUywfsBEhyl5toGqK1U7PuvHxspiZaD0K_qkvL4/s1600/Twilio-Settings-as-part-of-App-Settings.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="71" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj44dDA3_v9s8PIdsS1T49xvBGkEtF6RThB-kiTGeJLjuDvub8HEey5Ng6MpDdxa7Zjv2QvuRNpTO3hc3bsFYY8bToRfzGPJdUQLYa2QUywfsBEhyl5toGqK1U7PuvHxspiZaD0K_qkvL4/s400/Twilio-Settings-as-part-of-App-Settings.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
Your Account SID and Auth Token will be available under the dashboard tab on Twilio :<br />
<a href="https://www.twilio.com/user/account" rel="nofollow">https://www.twilio.com/user/account</a><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbsgpW_mB-XQFt4sWXqRM9TtVNIcJ4VvPc1BPnMHmo2-stFONNtqDluVtYMG59HQR880G2zBWA8LuCtIy6ZKb5yV7NmOU1IwLa033qYGTvZAJeVNR2v-MrX_ivd8OXY0XxRBShsfVOnvo/s1600/Twilio-user-account-settings-copy-Account-SID-and-Auth-Token.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="105" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbsgpW_mB-XQFt4sWXqRM9TtVNIcJ4VvPc1BPnMHmo2-stFONNtqDluVtYMG59HQR880G2zBWA8LuCtIy6ZKb5yV7NmOU1IwLa033qYGTvZAJeVNR2v-MrX_ivd8OXY0XxRBShsfVOnvo/s400/Twilio-user-account-settings-copy-Account-SID-and-Auth-Token.png" width="400" /></a></div>
<br />
<br />
For the Sender ID, proceed to the <b><i>Numbers</i></b> tab and copy your Twilio number. If in case you have a short-code, you can provide the same in the <b>App Settings</b> in iFreeTools.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDHYTPfoqYbaYjcN7MzOG8ERgrYoDM1Ux2l80HHGZpOA_Tw0ZxS8RDEczJ8G4_HWwYwZiSdvastlZo1a_RzXDG3ewyqnKktw1r3fiEgs3Fp86xDYPVAhw8KUvnk_Gg8yo3DdSWjxcy4JY/s1600/Twilio-user-account-settings-copy-twilio-number-for-Sender-ID.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDHYTPfoqYbaYjcN7MzOG8ERgrYoDM1Ux2l80HHGZpOA_Tw0ZxS8RDEczJ8G4_HWwYwZiSdvastlZo1a_RzXDG3ewyqnKktw1r3fiEgs3Fp86xDYPVAhw8KUvnk_Gg8yo3DdSWjxcy4JY/s400/Twilio-user-account-settings-copy-twilio-number-for-Sender-ID.png" width="400" /></a></div>
<br />
<br />
The <b>Send SMS</b> option will automatically list all the phone numbers available in the records, which have been marked with <b><i>Other Rendering</i></b> as <i>Phone</i>, in the attribute details page.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjym1TQT8SGcrQecW-VjjUmn4RLqkrcGCMDqD-aKPJWuYDbhoGbNlQy9-FkpTc7rmRqotpxpy__YaXPjHHg5uRKmLuyqtJsHvn_7IO42Mnn18kcKbDffHb0_-qswQZweLrRa5FV8xhsc5g/s1600/Marking-an-attribute-as-a-phone-number-in-online-database-app.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="252" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjym1TQT8SGcrQecW-VjjUmn4RLqkrcGCMDqD-aKPJWuYDbhoGbNlQy9-FkpTc7rmRqotpxpy__YaXPjHHg5uRKmLuyqtJsHvn_7IO42Mnn18kcKbDffHb0_-qswQZweLrRa5FV8xhsc5g/s400/Marking-an-attribute-as-a-phone-number-in-online-database-app.png" width="400" /></a></div>
<br />
<br />
The option to <b>Send SMS</b> will be available in the list views for records which have a phone number, so that you can select the records and trigger an SMS manually, as shown in the image below..<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwSrLXBkWHpFC-HreXQLfqwwndZ9aMJDHKUVAXz8PhKpVIPFzI9Y0HKEvbg0LckqKi0kqSSNNP0IR1_HXgmYbHMsQ-bvxIyxrigYKoGQst8S6MncCjLE5fOJDCnkXS4DFVyI3WqFydehE/s1600/Send-SMS-option-as-part-of-list-views.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="106" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwSrLXBkWHpFC-HreXQLfqwwndZ9aMJDHKUVAXz8PhKpVIPFzI9Y0HKEvbg0LckqKi0kqSSNNP0IR1_HXgmYbHMsQ-bvxIyxrigYKoGQst8S6MncCjLE5fOJDCnkXS4DFVyI3WqFydehE/s400/Send-SMS-option-as-part-of-list-views.png" width="400" /></a></div>
<br />
The resulting page will work similar to how you can send out email-notifications using mail-merge like field values. The <b>Send SMS</b> option will also be available as part of the <a href="http://blogs.ifreetools.com/2012/03/rule-based-email-triggers-to-automate.html">Workflow actions</a>, so that you can trigger the SMS automatically when the records get added/updated/deleted, as shown below..<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcgAt_6n9mmPR9OrWq3bP_kAiQNCAic1iqNIm_iwHpmZC5amAQBTm6RTfiSYAp3kCytFctHc1RGclTp-BQADFy2qpIoZrF9OGddgkXihQcf0ReETyKrp9ddXj7AOEpB2M9mjhyS-DBRwI/s1600/Send-SMS-action-as-part-of-workflows.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="243" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcgAt_6n9mmPR9OrWq3bP_kAiQNCAic1iqNIm_iwHpmZC5amAQBTm6RTfiSYAp3kCytFctHc1RGclTp-BQADFy2qpIoZrF9OGddgkXihQcf0ReETyKrp9ddXj7AOEpB2M9mjhyS-DBRwI/s400/Send-SMS-action-as-part-of-workflows.png" width="400" /></a></div>
<br />
You can verify the contents and the status of the messages from under <b>Notification Tasks</b>, which will list all the notifications triggered from the application.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwu2UdbPB4p5-qX0r31ZvaQcemUROuZc50-AJXUzBbBN7ik_vcagzB7R0NHIqfULWdnX-OISr0U8fgjmcMf001lt5cJkaA9hq1H7O-umd__3EdYyyHDKl3msdMnzkKE0mWPQ-gQXU-bys/s1600/Notification-Tasks-showing-details-of-emails-SMS-messages-triggered-from-the-online-database-application.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="167" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwu2UdbPB4p5-qX0r31ZvaQcemUROuZc50-AJXUzBbBN7ik_vcagzB7R0NHIqfULWdnX-OISr0U8fgjmcMf001lt5cJkaA9hq1H7O-umd__3EdYyyHDKl3msdMnzkKE0mWPQ-gQXU-bys/s400/Notification-Tasks-showing-details-of-emails-SMS-messages-triggered-from-the-online-database-application.png" width="400" /></a></div>
<br />
<br />
<b>Phone number format </b>(<a href="http://www.twilio.com/help/faq/phone-numbers/how-do-i-format-phone-numbers-to-work-internationally" rel="nofollow">as per Twilio docs</a>)<b> : </b><br />
<br />
The phone number values need to be in the <b>[+][country code][subscriber number including area code]</b> format to work without issues. Other formats are not guaranteed to work with Twilio, as detailed below..<br />
<br />
<blockquote class="tr_bq">
<i>We strongly encourage <a href="http://en.wikipedia.org/wiki/E.164" rel="nofollow">E.164 number formatting</a> for all phone numbers both in the ‘to’ and ‘from’ fields. This format is the internationally-standardized format for all phone numbers, and it includes all the relevant information to route calls and SMS messages globally. E.164 numbers can have a maximum of fifteen digits and are usually written as follows: [+][country code][subscriber number including area code]. Phone numbers that are not formatted in E.164 may work, but it depends on the phone or handset that is being used as well as the carrier from which the call or SMS is being originated. </i></blockquote>
<blockquote class="tr_bq">
<i>For example, to convert a US phone number (415 599 2671) to E.164 format, one would need to add the ‘+’ prefix and the country code (which is 1) in front of the number (+1 415 599 2671). In the UK and many other countries internationally, local dialing requires the addition of a 0 in front of the subscriber number. However, to use E.164 formatting, this 0 must be removed. A number such as 020 7183 8750 in the UK would be formatted as +44 20 7183 8750.</i></blockquote>
Hope you like the new Twilio integration. Keep sending in your feedback and suggestions on how we can make your <a href="http://creator.ifreetools.com/">online database application hosted on </a><a href="http://creator.ifreetools.com/">Google App Engine</a> work better for you.<br />
<br />
<div>
<br /></div>
</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4804315647803552547.post-3032787159112463912012-09-02T10:48:00.000-07:002012-09-02T10:48:36.174-07:00Enable Record-Locking to allow users to Lock / Unlock database records<div dir="ltr" style="text-align: left;" trbidi="on">
We have now added a new feature in your <a href="http://creator.ifreetools.com/">custom online database application creator</a> to enable record-locking facility for your online database records. In the Add / Edit Entity form, you will now find an option to enable record-locking for that specific entity's records, as shown below.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-7Rip9VhnDgodFPhe6kZqktoaX16nGZfSJLBIhLGd6RH5vIyQTg7s87ekVT9eTqEmFhOfvJdVEjuLsKPDdb55sPBXah2ZTZNAH1zcjxx5gEQypxS16zyV8LWFD2Pu23_cW0oj5S5K6E0/s1600/enabling-record-locking-facility-in-add-edit-entity-form-of-online-database-application.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="137" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-7Rip9VhnDgodFPhe6kZqktoaX16nGZfSJLBIhLGd6RH5vIyQTg7s87ekVT9eTqEmFhOfvJdVEjuLsKPDdb55sPBXah2ZTZNAH1zcjxx5gEQypxS16zyV8LWFD2Pu23_cW0oj5S5K6E0/s400/enabling-record-locking-facility-in-add-edit-entity-form-of-online-database-application.png" width="400" /></a></div>
<br />
Once you check on the <b><i>Enable Record Locking</i></b> option and save the entity, you will now see options in the list view and in the details view to lock / unlock / request-unlock of database records. These options will be made available only for those users who have edit permissions to the record.<br />
<br />
The following image shows all the database records in unlocked state, with a button under <b>Actions</b> to have them locked.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQY7yTMKekOXnAWuhi7SMxvWjtcb4lfix-6h5gmy4FEMjZ1gRtgiBS-WR99dW8zbk84XGZimfLEDIKQmNhqMEwkGGciwfTrkb7ulB4TkigqUyV91IhNSBnoldUf6dIbfKgVlHsPe51wg4/s1600/list-of-database-records-with-locking-facility-enabled-in-online-database-application.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="175" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQY7yTMKekOXnAWuhi7SMxvWjtcb4lfix-6h5gmy4FEMjZ1gRtgiBS-WR99dW8zbk84XGZimfLEDIKQmNhqMEwkGGciwfTrkb7ulB4TkigqUyV91IhNSBnoldUf6dIbfKgVlHsPe51wg4/s400/list-of-database-records-with-locking-facility-enabled-in-online-database-application.png" width="400" /></a></div>
<br />
When the records get locked, the action buttons would change to reflect their locked status. You can also get to know who has currently locked a record from the <b><i>Locked By</i></b> attribute, as shown below.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRS8P7EM6t2UzMG33antfh9P9g9DkA91TrHcjJtR7nt8IKyujqYdl_vUljYZ1pApBC4clJRw9JTFWwJPF1cv9mKylbT-uTkO52HPI2zFd5kulolwrc-UAVbd5Znnb8SsUym-6863kXOm4/s1600/list-view-showing-locked-records-with-locked-by-column-in-online-database-application.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRS8P7EM6t2UzMG33antfh9P9g9DkA91TrHcjJtR7nt8IKyujqYdl_vUljYZ1pApBC4clJRw9JTFWwJPF1cv9mKylbT-uTkO52HPI2zFd5kulolwrc-UAVbd5Znnb8SsUym-6863kXOm4/s400/list-view-showing-locked-records-with-locked-by-column-in-online-database-application.png" width="400" /></a></div>
<br />
When another user who also has edit permissions to the same record accesses the list view, the user will get to see the locked status. They will not find the option to edit / delete the locked records. They can request for the record to be unlocked. This will trigger an email to the user who has currently locked the record, in case of paid single-tenant deployments, while notification tasks will get added in the free version with <i>Preview</i> status.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-cWA7HoN_it6TTe9wwyWGS-_iG-svZ4-hrxSyBIVv6C6ToKTWnjjkkpoaRP7NoU-AEW68RfHncEEPEUwDbkPwVYbiY4SH1WRyfQ_LOV3uM_T8R8QT9x15ldvM99y6VKZ4RaYTIUAxz7Q/s1600/option-to-request-for-unlocking-database-record-in-online-database-application.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="211" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-cWA7HoN_it6TTe9wwyWGS-_iG-svZ4-hrxSyBIVv6C6ToKTWnjjkkpoaRP7NoU-AEW68RfHncEEPEUwDbkPwVYbiY4SH1WRyfQ_LOV3uM_T8R8QT9x15ldvM99y6VKZ4RaYTIUAxz7Q/s400/option-to-request-for-unlocking-database-record-in-online-database-application.png" width="400" /></a></div>
<br />
Admin users can unlock records locked by any other users, if such a need arises. All locking / unlocking operations are automatically audited and will be available under <i>Admin</i> > <i>Audits</i>.<br />
<br />
Record-locking is a premium feature available as a preview in the free version, wherein you can enable this facility for one entity (record type). If you are a paid single-tenant deployments customer, you can enable record-locking for any number of entities.
<br />
<br />
Hope you like the new feature. Feel free to get in touch with your feedback and suggestions for improving iFreeTools, to help meet more of your business requirements.</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4804315647803552547.post-377801180582331472012-03-31T11:34:00.000-07:002012-03-31T11:35:24.302-07:00Rule based Email Triggers to Automate Business Processes, using Workflows<div dir="ltr" style="text-align: left;" trbidi="on">
Apart from helping <a href="http://creator.ifreetools.com/">build your own online database application</a>, iFreeTools can now help with automating more of your business processes, using workflows. Workflows in iFreeTools can check for criteria-rules during database changes and can trigger actions before or after those database changes.<br />
<br />
For the first cut of the workflow implementation, we have enabled sending out emails as part of the workflow actions. More workflow actions like adding / updating records (like creating a task), invoking external web-APIs, etc.,. are to be supported very soon.<br />
<br />
Defining and using workflows is as simple as filling in a form.<br />
<br />
Let us assume, for example, that you have a custom customer support database application built and hosted using using iFreeTools <a href="http://help.creator.ifreetools.com/2011/06/deployment-options-single-tenant.html">single-tenant deployment</a> in your own Google App Engine account and that you have a <a href="http://blogs.ifreetools.com/2012/02/create-free-online-web-forms-to-embed.html">web-form in your website</a> using which support requests can be made.<br />
<br />
Now, if you wanted to send an automated email to the user's email-id informing that the request has been received and will be processed by your staff soon and to also notify your team of the new support request, then the workflow configuration can be as given below..<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaLFPRBDCqs6HdqtSViLh1SCheF2pHVm9BYixy2ipLTr_uB3p_XurmnLPJIx0EvW4-jRd8ypxIB5Rld__-0nuPVdj66thTUoqhJ9g6J_gEnWnU_RuZH7eWXWDMx4nyTUtiECKrJcrg6I0/s1600/add-new-workflow-to-notify-users-automatically-when-new-record-gets-added.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="331" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaLFPRBDCqs6HdqtSViLh1SCheF2pHVm9BYixy2ipLTr_uB3p_XurmnLPJIx0EvW4-jRd8ypxIB5Rld__-0nuPVdj66thTUoqhJ9g6J_gEnWnU_RuZH7eWXWDMx4nyTUtiECKrJcrg6I0/s400/add-new-workflow-to-notify-users-automatically-when-new-record-gets-added.png" width="400" /></a></div>
<br />
<br />
Configuring the workflow actions is also very easy, where you can enter the details of the recipient and providing the subject and the contents of the email in the Select Action form. Both subject and contents can have template fields from the database record and will be replaced with actual values when sending out the email.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzqEkjSJ9FiNo8F6Aw3GWEip3LfD8E-11Emyw7trCnPhosBJdz9Hz8NnE-84vj5GzJMbsCQim4r3eFa8-1I52JDlZY8HeymP3i9hYCdpczphdSrVxaRMdpU_oTyuha3zkpAsErGFhS3YE/s1600/configure-actions-for-workflow-sending-out-emails-using-templates.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="357" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzqEkjSJ9FiNo8F6Aw3GWEip3LfD8E-11Emyw7trCnPhosBJdz9Hz8NnE-84vj5GzJMbsCQim4r3eFa8-1I52JDlZY8HeymP3i9hYCdpczphdSrVxaRMdpU_oTyuha3zkpAsErGFhS3YE/s400/configure-actions-for-workflow-sending-out-emails-using-templates.png" width="400" /></a></div>
<br />
<br />
For this workflow we did not add a workflow rule or the criteria to be matched before the workflow action can be executed. But in case you want to restrict the notifications to only High / Medium severity support requests, you could have done that too. The criteria form is similar to the Custom Views form and you can specify criteria based on operators <i>is</i>, <i>is not</i>, <i>contains</i>, <i>does not contain</i>.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi26CL8XkI4iKDQmmrVqt2IiaKgpMa3Oxbty9rjZJm3A5IUPki1POOdCxGj9OOtfG_hXG8dJ1wIg1JZ7P8SCd5Us2p8-DCXivl78vAm5FMFgBApIUm48avDDFG-sW_kAvEWuo3aiZUlOs4/s1600/specify-criteria-rules-for-workflows.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="261" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi26CL8XkI4iKDQmmrVqt2IiaKgpMa3Oxbty9rjZJm3A5IUPki1POOdCxGj9OOtfG_hXG8dJ1wIg1JZ7P8SCd5Us2p8-DCXivl78vAm5FMFgBApIUm48avDDFG-sW_kAvEWuo3aiZUlOs4/s400/specify-criteria-rules-for-workflows.png" width="400" /></a></div>
<br />
As can be seen in the messages in the screen-shot images, workflows will be a premium feature available for paid, single-tenant deployments alone, which by the way is very much affordable :<br />
<br />
<ul style="text-align: left;">
<li>$99/year for up to 25 users (which works out to $8.25/month or $0.33/user/month)</li>
<li>$198/year for up to 100 users (works out to $16.5/month or $0.165/user/month)</li>
<li>$297/year for unlimited users</li>
</ul>
<br />
If you are using the free multi-tenant deployment, you can still try out the feature by creating the workflows and viewing the <b><i>Notification Tasks</i></b> records added in <i>Preview</i> status, showing the actual subject and the contents of the email, based on the email-template provided in the workflow configuration.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEsZ_4uddUEqpBbqsjrfaROL8Euuk0PJHT7gE7yeO1y8wJ8QpB12Om4Xdcf2hoTux-Lk28tOSoRNKdDWrAOtBD8egpppDpgGI7lFznd5rYMGrGGZVdKjojCoWozW8NhyaON-mRMvtY4v0/s1600/notifications-tasks-added-for-workflow-actions.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="221" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEsZ_4uddUEqpBbqsjrfaROL8Euuk0PJHT7gE7yeO1y8wJ8QpB12Om4Xdcf2hoTux-Lk28tOSoRNKdDWrAOtBD8egpppDpgGI7lFznd5rYMGrGGZVdKjojCoWozW8NhyaON-mRMvtY4v0/s400/notifications-tasks-added-for-workflow-actions.png" width="400" /></a></div>
<br />
We will be adding more workflow actions to add / update database records (like creating a task), invoke external web-APIs, etc.,. If you are looking for some specific use-case which you would like to automate using workflows, kindly get in touch with us with details, using the <a href="http://creator.ifreetools.com/feedback-form">feedback form</a> in the application.<br />
<br />
<br /></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4804315647803552547.post-10651617963576947492012-02-21T05:34:00.001-08:002012-12-16T02:07:21.720-08:00Create Free Online Web Forms to Embed in your Website<div dir="ltr" style="text-align: left;" trbidi="on">
iFreeTools Creator - your <a href="http://creator.ifreetools.com/">custom online database application builder</a>, built for and hosted over Google App Engine - now supports free online web-forms, which you can link-to or embed directly in your websites. When the data is filled-in and submitted using the online forms, the data will get added directly into your iFreeTools Creator online database application, which you (and your authorized users) can sign in to access.<br />
<br />
As part of the <b><i>Entity</i></b> configuration, you can now specify if you would like to enable web-forms for that entity, as highlighted in the image below.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqYPgrjHDfUNBV4XBcTSx7-BML9Y3tJ7jbXS3_N7I7rGFk1V_8anZvM4IvANhmz0AwAgZV0_DlRMFDIXUeUTbIVRsC78OZ3KlTMyF48UDmF0QGtSJUxaknOxyf78XgF-jlGv5pAgOFeAI/s1600/Web-form-configuration-in-entity-form.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="256" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqYPgrjHDfUNBV4XBcTSx7-BML9Y3tJ7jbXS3_N7I7rGFk1V_8anZvM4IvANhmz0AwAgZV0_DlRMFDIXUeUTbIVRsC78OZ3KlTMyF48UDmF0QGtSJUxaknOxyf78XgF-jlGv5pAgOFeAI/s400/Web-form-configuration-in-entity-form.png" width="400" /></a></div>
<br />
<br />
Once the online web-forms are enabled, you can get the link for the web-form and the IFRAME code in the entity's list views. You can either provide the link to the public web-form in your website / blog or you can embed the form using the IFRAME code, directly within your website.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMTf-3wewdthtPWzzO7lfsfoVNDvNaotVJQdPLEEH8W4ez7C39-eT1EjQDPbXvNN6M7S7Oni3QrmrEsy9aDSJDWvGMrTSdmvm6IyWMnV9nOe0xwQzcWkmYf1E42Tc_i3a5q9Leio70jo8/s1600/Web-form-link-and-iframe-code-for-web-forms.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="279" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMTf-3wewdthtPWzzO7lfsfoVNDvNaotVJQdPLEEH8W4ez7C39-eT1EjQDPbXvNN6M7S7Oni3QrmrEsy9aDSJDWvGMrTSdmvm6IyWMnV9nOe0xwQzcWkmYf1E42Tc_i3a5q9Leio70jo8/s400/Web-form-link-and-iframe-code-for-web-forms.png" width="400" /></a></div>
<br />
<br />
The link / embed-code will open up the online form, for your users to enter the details. Sample public web-form accessed via the link is shown below.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghNG3MgJ_CssUev3ToVgj1ZkSaRoy3myftwJVEeggBJ0nR6xNR6h6maYrvMx1yDKnxcb7F2msHDCUQXmJT9Twp7GJRZy9_pFfzzcDkaoMsINVbLHqzaIoS2x9xwpbw4X4c2qt2sIOUyKA/s1600/Sample-web-form-accessed-using-direct-link.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghNG3MgJ_CssUev3ToVgj1ZkSaRoy3myftwJVEeggBJ0nR6xNR6h6maYrvMx1yDKnxcb7F2msHDCUQXmJT9Twp7GJRZy9_pFfzzcDkaoMsINVbLHqzaIoS2x9xwpbw4X4c2qt2sIOUyKA/s400/Sample-web-form-accessed-using-direct-link.png" width="367" /></a></div>
<br />
<br />
Currently, as part of the free plan, you can enable web-forms for just one entity, while with paid deployments you can enable public web-forms for unlimited number of entities.<br />
<br />
<b>Update :</b> It is also possible to restrict the fields in the web-form, using authorization profiles. For this you will have to..
<br />
<ol style="text-align: left;">
<li>Define a new <a href="http://blogs.ifreetools.com/2010/12/access-control-up-to-field-level-now.html">Auth Profile</a> with permissions set for the <b><i>Add</i></b> operation and select the required fields. Other permissions like <b><i>View</i></b> / <b><i>Edit</i></b> / <b><i>Delete</i></b> / etc.,. will be ignored, when this auth-profile is used in the context of web-form.</li>
<li>Add a new user with email-id as <b>public-web-form-user@ifreetools.com</b>, associating the auth-profile</li>
</ol>
Please note that having such an user-account configured will affect all the public web-forms.<br />
<br />
Hope you find the public web-forms support useful in your database application.</div>
Unknownnoreply@blogger.com8tag:blogger.com,1999:blog-4804315647803552547.post-949200000319285292011-11-29T04:53:00.001-08:002011-11-29T05:22:11.455-08:00Quick filters now available in iFreeTools<div dir="ltr" style="text-align: left;" trbidi="on">
Your favorite <a href="http://creator.ifreetools.com/">web-based database app builder</a> and your <a href="http://crm.ifreetools.com/">CRM for use with Google Apps</a>, have long supported ways to filter records based on custom filtering criteria, using the <a href="http://blogs.ifreetools.com/2009/12/support-for-custom-views-in-ifreetools.html">Custom Views</a> feature.<br />
<br />
While creating Custom Views is convenient for oft-searched filtering criteria, there are times when you might prefer a quick way to get a sub-set of your database records, without having to create a view first.<br />
<br />
Based on your requests from users, we have now added support for such quick filtering. In the list view, you will now find the quick filtering options under <b>Filters</b>.<br />
<br />
iFreeTools will automatically provide the quick-filters for boolean (yes/no) fields, date fields, date-time fields and for fields which have choice-values (either drop-down or multi-select fields), as shown in the sample view below.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkBAPHTKy98nR21-JX5xqlUW_xvZ7DZpkuNEfmHLcr3vK4GsqWByVj3HEQF0QY1pIP_0jscj5MqecRlIQcZMmYkWkTHkrK1Pop3KbCgHUfLHYJjEmD2X7cTjb4Xj-Kt_MY9KYZbXRVF4s/s1600/quick-filters-in-table-list-view-of-online-database-application-builder--ifreetools-creator.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="85" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkBAPHTKy98nR21-JX5xqlUW_xvZ7DZpkuNEfmHLcr3vK4GsqWByVj3HEQF0QY1pIP_0jscj5MqecRlIQcZMmYkWkTHkrK1Pop3KbCgHUfLHYJjEmD2X7cTjb4Xj-Kt_MY9KYZbXRVF4s/s400/quick-filters-in-table-list-view-of-online-database-application-builder--ifreetools-creator.jpg" width="400" /></a></div>
<br />
<br />
Date and Date-time fields will have both the year and month filtering options.<br />
<br />
Access control rules for the fields, if any, will be confirmed-to, when showing the quick-filters. That is, users will see the automatic quick-filters for the supported field types, only if they have the viewing permission for those fields.<br />
<br />
Apart from these quick filtering options, users can also use the alphabetical indexing, keyword-indexing and the client-side instant search to narrow down the records from the database.<br />
<br />
Hope you like the new feature. Keep sending in your suggestions.<br />
<br /></div>Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-4804315647803552547.post-59470780961538090202011-10-28T06:50:00.000-07:002011-10-28T06:50:35.838-07:00Export / Import iFreeTools Creator Applications as a single app-file<div dir="ltr" style="text-align: left;" trbidi="on">
Creating an online database application using <a href="http://creator.ifreetools.com/">iFreeTools Creator</a> is as easy as defining your entities, attributes and to start using it adding the users. While this allows you to create a basic database app, you can further customize it as per your requirements including by creating custom views, custom actions, authorization profiles, etc.,. And at some point you might want to create a duplication application -- may be for testing new features (which we keep rolling in based on suggestions from users) before you start using them in your main production application instance or may be to move on to your own <a href="http://help.creator.ifreetools.com/2011/06/deployment-options-single-tenant.html">single-tenant deployment</a>, over your Google App Engine account.<br />
<br />
This is easy to an extent, with regard to exporting and importing <i>Custom Entities</i> and <i>All Attributes</i> as CSV files. But, when you would like to have your additional configurations like <i>Custom Views</i>, <i>Custom Actions</i> or fine-grained <i>Auth Profiles</i> which you have created for your users, then the only option until now was to re-create them manually after importing the basic data-model as entities and attributes, as these configurations did not support export / import option.<br />
<br />
Not any more. We have now made it possible for <i>admin</i> users to export the application as a single application file which apart from containing the Entities and Attributes details will also have the configuration details of App Settings (including re-branded app-names, logo images, time-zones, etc.,.), Custom Views and Custom Actions (both shared and user-specific), Auth Profiles and Users data.<br />
<br />
<i>Technical note : In case you are more technically inclined, the app-file is in JSON format, which you can open with a normal text editor, like notepad and view the contents.</i><br />
<br />
For <i>admin</i> users, the <i>Export App</i> link will be available in the footer.<br />
<br />
Once you export this application, save this file to your computer and then proceed to your new application instance. You can create new ones from under <i>My Apps</i> (link in the top-right and in the footer).<br />
<br />
In the new application's home page you will find the option to import the app-file under the Import Ready-made Apps tabs.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEji4J6YTJybOQdjqRGiih9u68Ip-1LrFldlCmjpiLun4l93BGgHzzWpajD4dl15f2WWj3XZAx2G61n3uk2k5DZg_xTEBizuZioyqHw2EfsxwI5bNNtzK2svk_8BtPY3AzBZ-Fjpay7wxM8/s1600/import-app-file-option-in-ifreetools-creator-home-page-initial-setup.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="230" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEji4J6YTJybOQdjqRGiih9u68Ip-1LrFldlCmjpiLun4l93BGgHzzWpajD4dl15f2WWj3XZAx2G61n3uk2k5DZg_xTEBizuZioyqHw2EfsxwI5bNNtzK2svk_8BtPY3AzBZ-Fjpay7wxM8/s400/import-app-file-option-in-ifreetools-creator-home-page-initial-setup.png" width="400" /></a></div>
<br />
<br />
Clicking on the <i>import the app file</i> link will take you to a page where you can specify the app file to be imported.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNpQJc8BJUlwuG_HYe4uiZ2tan0P8b0T7t9f5zYB3U-UuvO8wuLYBvrjE1qLDxgxX4_PXkm9EcDSCzrj-MeZZRzLlQ-tc9X9iObbHD3yb2m_sWG5xb5doMZbQAGV8FQS4J-p6lN8lXvE8/s1600/import-app-file-select-app-file-for-import-in-ifreetools-creator.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="297" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNpQJc8BJUlwuG_HYe4uiZ2tan0P8b0T7t9f5zYB3U-UuvO8wuLYBvrjE1qLDxgxX4_PXkm9EcDSCzrj-MeZZRzLlQ-tc9X9iObbHD3yb2m_sWG5xb5doMZbQAGV8FQS4J-p6lN8lXvE8/s400/import-app-file-select-app-file-for-import-in-ifreetools-creator.png" width="400" /></a></div>
<br />
<br />
Browse and select the application file which you had exported earlier and click proceed. iFreeTools Creator will now process the contents of the app-file, to automatically re-create you database application.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhazHD8mE5G72gxu8mFPk-OALeDi3hZ6bmoprhOQvHtb1gc8vJ32DXF9Tj9ldrnhKOjN6HxjVn3snnzmyXqD-r084h7Yyz9vFgVwEovbrrhmrFAUuemUG23UUy9KsG40h2-51DsmhtIkXU/s1600/processing-from-imported-app-file-in-ifreetools-creator.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhazHD8mE5G72gxu8mFPk-OALeDi3hZ6bmoprhOQvHtb1gc8vJ32DXF9Tj9ldrnhKOjN6HxjVn3snnzmyXqD-r084h7Yyz9vFgVwEovbrrhmrFAUuemUG23UUy9KsG40h2-51DsmhtIkXU/s400/processing-from-imported-app-file-in-ifreetools-creator.png" width="216" /></a></div>
<br />
<br />
That is it ! Now you have a duplication application ready to use. Hope you find the new feature useful. Do keep sending in your suggestions on how we can make your <a href="http://creator.ifreetools.com/">online database application</a> better and easier for you.</div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4804315647803552547.post-54836195836678696952011-09-29T23:57:00.000-07:002012-08-15T22:39:09.310-07:00Accessing auto-generated IDs in formula-fields & Enabling keyword-indexing for search<div dir="ltr" style="text-align: left;" trbidi="on">
We are happy to announce the availability of two new features which have been requested by many users recently.<br />
<ol style="text-align: left;">
<li><a href="http://blogs.ifreetools.com/2011/09/accessing-auto-generated-ids-in-formula.html#access-auto-id">Access to auto-generated ID in formula-field expressions</a></li>
<li><a href="http://blogs.ifreetools.com/2011/09/accessing-auto-generated-ids-in-formula.html#keyword-indexing">Support for keyword-indexing, enabling better search</a></li>
</ol>
<a href="http://blogs.ifreetools.com/2011/09/accessing-auto-generated-ids-in-formula.html#access-auto-id" name="access-auto-id"></a>
<b>Access to auto-generated ID in formula-field expressions.</b><br />
<br />
<a href="http://creator.ifreetools.com/">iFreeTools Creator</a> is built-for and hosted-over Google App Engine. Each record stored within the BigTable datastore of App Engine has its own unique key, which is automatically generated. (Note: This key-id value is not guaranteed to be increasing in sequential-order, but for uniqueness alone).<br />
<br />
Until now it was not possible in iFreeTools to make use of this auto-generated key-id in formula fields, as this will not be available when the new record is yet to be saved into the database. But we have now made this possible by allocating the id values and making them available via a new function key_id, detailed below..<br />
<br />
<code>
<b>key_id</b> </code><br />
<code>Usage : key_id(instance=None)</code><br />
<code>Description : Returns a key-id for the currently added / modified record, if <i>instance</i> parameter is not supplied. If <i>instance</i> parameter is supplied, returns the key-id for the instance.</code><br />
<code>Example : </code><br />
<code><i>key_id()</i> returns the currently added / updated records key-id </code><br />
<code><i>key_id (val("Customer"))</i> returns the key_id for the <i>Customer</i> field, assuming <i>Customer</i> is a reference attribute.
</code>
<br />
<br />
You can make use of this key_id function in your formula fields to generate a visible unique-id for your data. May be, a issue-id / ticket-id / customer-id / etc.,. like <i>Ticket ID</i> having a formula expression as <i>"TICKET-" + str(key_id()) </i>will generate values of the form <i>TICKET-42322212</i>, assuming you enable keyword-indexing for this field (see below), you can quickly search for this ticket from the full database.<br />
<br />
<a href="http://blogs.ifreetools.com/2011/09/accessing-auto-generated-ids-in-formula.html#keyword-indexing" name="keyword-indexing"></a>
<b>Support for keyword-indexing, enabling better search</b>
<br />
<br />
Extending our earlier support for <a href="http://blogs.ifreetools.com/2011/03/alphabetical-indexing-of-database.html">alphabetical-indexing</a>, supported in <i>Single-line text (String)</i> and<i> Lookup (Reference)</i> data-type attributes, we have now added support for indexing the keywords.<br />
<br />
This has been added for attributes of <i>Single-line text (String)</i>, <i>Multi-line text (Text)</i>, <i>List (with String values)</i>,<i> Lookup (Reference)</i> and numeric data-types..<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXCw4FKyWmtP5V3oyhWUoLe-G-OMa7IMI5Q2th3nABymmkpBeztf_BlWBbi-pWEzsjepCMdOyc6dfOECn8q_B8lHiSY6r86YFUm4z6nlI6GLgzu6o6dd2GRGeQIctKouHW0rGfwbYwc-c/s1600/string-indexing-options.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" height="158" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXCw4FKyWmtP5V3oyhWUoLe-G-OMa7IMI5Q2th3nABymmkpBeztf_BlWBbi-pWEzsjepCMdOyc6dfOECn8q_B8lHiSY6r86YFUm4z6nlI6GLgzu6o6dd2GRGeQIctKouHW0rGfwbYwc-c/s320/string-indexing-options.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimzgvpaHIs7OJpTxaS9noIu0hy7xSLMxZrZJSNxrpUmnhemVLaRPPyq3qDMrYZwcs07SQ-WxUszGGILQtUOSUoB8EE7ak9jh5eXd6837oEngIx86BYmahyphenhyphenJgRWIih1fKJUrvORtTKfpFk/s1600/list-indexing-options.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="68" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimzgvpaHIs7OJpTxaS9noIu0hy7xSLMxZrZJSNxrpUmnhemVLaRPPyq3qDMrYZwcs07SQ-WxUszGGILQtUOSUoB8EE7ak9jh5eXd6837oEngIx86BYmahyphenhyphenJgRWIih1fKJUrvORtTKfpFk/s320/list-indexing-options.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8xTTkqE3hoA9pLeAquF7oIJRzhkUG4V-B_z2hex0yNfQ4SS9b54Ih9xngfMXdKabp4-V8oH60TySBz7BNfpUuQM7SctRMzvtfZghj6fEX6GSka-4MWnxFXhD3Tqgs9JwRwDpF9ovTU2k/s1600/numeric-attribute-indexing-options.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="170" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8xTTkqE3hoA9pLeAquF7oIJRzhkUG4V-B_z2hex0yNfQ4SS9b54Ih9xngfMXdKabp4-V8oH60TySBz7BNfpUuQM7SctRMzvtfZghj6fEX6GSka-4MWnxFXhD3Tqgs9JwRwDpF9ovTU2k/s320/numeric-attribute-indexing-options.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYkGompbW2exB9j3l0u6WG4r9Ax8SJ9sy3vIjTDPYSQzRjez_Ozmu8gW8l7aBBxOuPCc3J4Zv7UvvnpHO1dhKTHaHVZW_tAZR13GbWSezTtgu2gPr24GyQZchuNYB6seIZhsCkPUIgxeY/s1600/reference-attribute-indexing-options.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="107" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYkGompbW2exB9j3l0u6WG4r9Ax8SJ9sy3vIjTDPYSQzRjez_Ozmu8gW8l7aBBxOuPCc3J4Zv7UvvnpHO1dhKTHaHVZW_tAZR13GbWSezTtgu2gPr24GyQZchuNYB6seIZhsCkPUIgxeY/s320/reference-attribute-indexing-options.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKdAD7Uv5qXb9QncvqoJfybJF_sJhd-lqv0FoDJeIxyaOZx-604r3R4NjP2RgVdFjTSqXFy1fMi0wE51GluEav3oblQ0fsU9MvmlImndsmyV14fN3p0Z5yLTYqsk5RaqGmIM_S0RFOcJo/s1600/text-indexing-options.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="64" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKdAD7Uv5qXb9QncvqoJfybJF_sJhd-lqv0FoDJeIxyaOZx-604r3R4NjP2RgVdFjTSqXFy1fMi0wE51GluEav3oblQ0fsU9MvmlImndsmyV14fN3p0Z5yLTYqsk5RaqGmIM_S0RFOcJo/s320/text-indexing-options.png" width="320" /></a></div>
<br />
When a field is marked for keyword-indexing, iFreeTools will split out the words from the field and store them in a keyword-index, when the record is saved to the database. Later, when searching for records in the list views, apart from the instant-search within the loaded batch, you will be provided with an option to search for the keywords from all records in the database.<br />
<br />
While new records will be automatically indexed for the keywords, for older records, you can use the <i>Re-Index All</i> option available under <i>More Actions</i> in the list views.<br />
<br />
Hope you like new features. Keep sending in your suggestions on how you believe we can improve <a href="http://creator.ifreetools.com/">your favorite online database app</a>.<br />
<br />
<br /></div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4804315647803552547.post-70486745500033785802011-08-30T01:42:00.000-07:002011-08-31T01:17:05.223-07:00Now available : Data aggregation in list/chart views, Data-access & Caching functions and more..Over the month we have rolled-in the following features in your <a href="http://creator.ifreetools.com">free online database app builder</a> and <a href="http://creator.ifreetools.com">free online crm</a>, built over Google App Engine for use with Google Apps.
<br /><ol><li>Data aggregation in list views & chart views</li><li>Data access and Caching functions</li><li>Search for files to attach from Google Docs</li></ol><h3>Data aggregation in list views & chart views</h3>Numeric attributes (integer and float types) can now have a <i>Default Aggregation</i> configured to display the sum of the fields' values in the list views and in the chart views. <div>
<br /></div><div>In our iFreeTools CRM, our <a href="http://crm.ifreetools.com">free CRM app for use with Google Apps</a>, we have enabled this for fields in <i>Expected Revenue</i>,<i> Budgeted Cost</i> and <i>Actual Cost</i> fields in <i><b>Campaigns</b></i> and for <i>Amount</i> and <i>Expected Revenue</i> in <i><b>Opportunities</b></i>.
<br />
<br />The summation of the values from such fields will be listed below the list view as shown in the image below..
<br />
<br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioo4o-3TNR9_5Egh7qD25SxRZhXnfXQVuJV22cPjeAVga11407DhEX0138x-e0POdBu2k13lq60YtAaEYLeW8IhenJ64Ts0Ta8OXC0BNgdCXJt5i_Q98Z1ygPd2mvOhYX5RUu2Ezg2Iyo/s1600/aggregated-summary-in-list-views-of-online-database-app-ifreetools-creator.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 225px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioo4o-3TNR9_5Egh7qD25SxRZhXnfXQVuJV22cPjeAVga11407DhEX0138x-e0POdBu2k13lq60YtAaEYLeW8IhenJ64Ts0Ta8OXC0BNgdCXJt5i_Q98Z1ygPd2mvOhYX5RUu2Ezg2Iyo/s400/aggregated-summary-in-list-views-of-online-database-app-ifreetools-creator.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5646643399018658434" /></a>
<br />Along with this we have also enabled the result of aggregation from multiple attributes to be rendered in the same graph, so that you can compare related aggregation values visually.
<br />
<br />The following image shows the chart views for Campaigns enabled to display values from 3 attributes, Expected Revenue, Budgeted Cost and Actual Cost, grouped by Campaign Status..
<br />
<br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQ2cCJmt8AbWbQ4NAgeBVSyEjhFe__QgtLXaYnEBQXHQolQsOnNNvHtWgAZSmDSsHrFbpJeeGoTsR3VLowZ1U1uV5sDOmRcpln7JiVCSPKW9md6Z6pjnPFRTadpvUQLOnz-00W9N4kuEs/s1600/multiple-field-values-aggregated-and-rendered-in-charts-of-free-online-database-app-ifreetools-creator.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 217px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQ2cCJmt8AbWbQ4NAgeBVSyEjhFe__QgtLXaYnEBQXHQolQsOnNNvHtWgAZSmDSsHrFbpJeeGoTsR3VLowZ1U1uV5sDOmRcpln7JiVCSPKW9md6Z6pjnPFRTadpvUQLOnz-00W9N4kuEs/s400/multiple-field-values-aggregated-and-rendered-in-charts-of-free-online-database-app-ifreetools-creator.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5646617320037066338" /></a>
<br />For your <a href="http://creator.ifreetools.com">custom online database apps</a>, built over iFreeTools creator you can specify this configuration in the Attribute form, when you add/edit the attribute details.
<br />
<br /><b>Note </b>: All aggregation / charting features are currently restricted to work with smaller batch of data. When our Scheduled Reports feature is available, you can create summary / charts for full set of data.
<br />
<br /><h3>Data-access and Caching functions</h3>New data-access and caching functions listed below have been now added for use with expressions.
<br />
<br /><code><b>user</b>
<br />Usage : user()
<br />Description : Returns the currently logged in user
<br />
<br /><b>fetch_one</b>
<br />Usage : fetch_one(entity_name, criteria)
<br />Description : Returns a record for the given entity_name and filtering criteria
<br />Example : fetch_one("Car", {"Company":"Honda", "Name":"City"}) will fetch a record from the entity having <i>Display Name</i> as <i>Car </i>and for the filtering condition to get the record for Honda City.
<br />
<br /><b>val_from</b>
<br />Usage : val_from(instance, prop_name)
<br />Description : Returns a value of a property from the given instance.
<br />Example : val_from(user(), "emailId") will return the current user's email-id, where <i>emailId</i> is the alias for the "Email Id" attribute in User system-entity.
<br />
<br /><b>cache</b>
<br />Usage : cache(name, expr)
<br />Description : To cache the result of evaluation of expression <i>expr</i> with the given <i>name</i>.
<br />
<br /><b>cached_val</b>
<br />Usage : cached_val(name)
<br />Description : Returns the value which was added to cache previously with the given <i>name</i>.</code>
<br />
<br />For more details, refer to <a href="http://help.creator.ifreetools.com/2010/06/using-expressions-for-formula-fields.html#Data Access and Cache Functions">Data Access and Cache Functions</a> section the <a href="http://help.creator.ifreetools.com/">user guide</a>.
<br />
<br /><h3>Search for files to attach from Google Docs</h3>When attaching files from Google Docs to your records, you now have the option to search for the required file based on text, to narrow down the files and attach the required file to your record.
<br />
<br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoQsh4LM03dzJ5RXdSqZwVT5G0rl3EDp1H4L_Z_DAm0Rsc4_LqmoRugiEifyNDme_HOOg_KXQS-5DOMl80Ost9LGhJHzdd2wxv9erqsRCqG0Om5XOcSVZsf-xx6cFq6yc6Y1DNvoIcgf0/s1600/search-and-find-files-in-google-docs-to-attach-to-database-records-ifreetools-creator.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 150px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoQsh4LM03dzJ5RXdSqZwVT5G0rl3EDp1H4L_Z_DAm0Rsc4_LqmoRugiEifyNDme_HOOg_KXQS-5DOMl80Ost9LGhJHzdd2wxv9erqsRCqG0Om5XOcSVZsf-xx6cFq6yc6Y1DNvoIcgf0/s400/search-and-find-files-in-google-docs-to-attach-to-database-records-ifreetools-creator.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5646925262233360018" /></a>
<br />Hope you like the new features.
<br />
<br />Do keep sending in your suggestions on how we can make things better in your <a href="http://creator.ifreetools.com/">free online database app builder</a>.</div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4804315647803552547.post-26376551406678195232011-07-29T01:09:00.000-07:002011-07-29T01:48:43.805-07:00Date-Time and Error Functions now available for use within ExpressionsYour favorite <a href="http://creator.ifreetools.com">online database app builder tool</a> over Google App Engine - iFreeTools Creator, now supports date-time functions within formula field expressions and in validation expressions.<br /><br />The new date-time functions made available are listed below :<br /><br /><code><br /><b>now</b><br />Usage : now () <br />Description : Returns a datetime object having the current time. <br /><br /><b>date</b><br />Usage : date(year, month, day)<br />Description : Returns a date object for the given year, month and day values. <br /><br /><b>datetime</b><br />Usage : datetime (year, month, day, hours=0, minutes=0, seconds=0)<br />Description : Returns a datetime object for the given parameters. If hours, minutes and seconds are not provided, they will be taken to be 0 (zero).<br /><br /><b>timedelta</b><br />Usage : timedelta (days=0, seconds=0, microseconds=0)<br />Description : Returns a timedelta object representing a difference in time, for the given days, seconds and microseconds. Can be used to add or subtract date/datetime values.<br />Example: now() + timedelta(1) will give tomorrow's date and time.<br /></code><br /><br />We have also added support for raising error messages when validating values using expressions. Apart from detailing on how to enter the value for the field in the description, this function will enable you to specify the reason for the validation failing.<br /><br /><code><br /><b>error</b><br />Usage : error(error_msg)<br />Description : Raises an error with the given error_msg. This will be shown in the form for the corresponding attribute which failed the validation expression.<br /></code><br /><br />We have also rolled in a new home page for <a href="http://creator.ifreetools.com">iFreeTools Creator</a>, now highlighting the important features available in the platform.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiz87eGBY3r2ynyxiLKq5J3rm9JzjLe133JObcK_bC-VnYbhCkv93zR5p7j8f8iIO3wk4gV9GLCFjxiGkUyTEBurts2_ekxNSnNy6xOV-R7Bmtv7VGHjGFrzInyh4g65zKU-fnIjMlRxjY/s1600/ifreetools-creator-new.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 254px; height: 400px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiz87eGBY3r2ynyxiLKq5J3rm9JzjLe133JObcK_bC-VnYbhCkv93zR5p7j8f8iIO3wk4gV9GLCFjxiGkUyTEBurts2_ekxNSnNy6xOV-R7Bmtv7VGHjGFrzInyh4g65zKU-fnIjMlRxjY/s400/ifreetools-creator-new.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5634691844544964930" /></a><br /><br />Keep sending in your valuable suggestions on how you think we can make iFreeTools better for you.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4804315647803552547.post-74604513560334820302011-06-29T02:51:00.001-07:002016-04-06T22:45:22.044-07:00Expressions for Computed Formula Fields & Field Validations, now available in iFreeTools<div dir="ltr" style="text-align: left;" trbidi="on">
The <a href="http://labs.ifreetools.com/">labs setup</a> of the Google App Engine powered <a href="http://creator.ifreetools.com/">free online database apps creator</a>, now has support for defining and using expressions for calculated formula fields and in validations.<br />
<div>
<br /></div>
<div>
<b>Update </b>: it is now available at <a href="http://creator.ifreetools.com/">http://creator.ifreetools.com</a> too.<br />
<div>
<br />
<div style="background-color: orange; border-radius: 4px; padding: 4px;">
<b>Note : </b>When adding new formula expressions, you will need to re-index the existing records to have the formula value computed for those entries.</div>
<br />
<h3>
Formula Expressions</h3>
You can now define expressions based on values in other fields in the database record to compute the value of formula field.<br />
<br />
For example, you might have <i>First Name</i> and <i>Last Name</i> as fields within your database record and may prefer to have them combined in another <i>Name</i> field. For this you can add the 3 attributes with data-type as <i>Single line text (String)</i> and for the <i>Name</i> attribute you can set the Formula Expression (under Advanced section of the attributes form) to be<br />
<br />
<i>val("First Name") + " " + val("Last Name")</i><br />
<br />
The <i>val</i> function enables you to fetch the value of the field for a given display name.<br />
<br /></div>
<div>
The formula expressions can be set for any data-types, just make sure the return value of the expression is of the required type.<br />
<h3>
Aliases for fields</h3>
You can also set <i>Alias</i>es for the attributes and use them instead of the val functions, to have the formula to be something like<br />
<br />
<i>First_Name+" "+Last_Name</i><br />
<br />
<h3>
Validation Expressions</h3>
You can also define validations expressions which need to evaluate to <i>True</i> for the record to be stored into the database.<br />
<br />
So, if you have a product code field and it should always be 5 characters in length, you can set the Validation Expression as<br />
<br />
<i>len(inputValue) == 5</i><br />
<br />
For more details on the operators and functions available for use within expressions, kindly refer to <a href="http://help.creator.ifreetools.com/2010/06/using-expressions-for-formula-fields.html">Using Expressions for Formula-fields and Validations</a>, in our user guide.</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
Hope you like the new feature. Do keep sending in your suggestions on how you believe we can make this app better for you.</div>
</div>
</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4804315647803552547.post-81181898480777823432011-05-30T05:28:00.000-07:002011-05-30T06:12:21.360-07:00Yes/No (Boolean) fields support in Custom Views and moreWe have been making improvements over the past few weeks to the <a href="http://creator.ifreetools.com">Free Online Database App Creator</a> for use with Google Apps and in our <a href="http://crm.ifreetools.com">Free CRM</a> built over Google App Engine, based on feedback/suggestions from our users.<br /><br /><h3>Filter based on <i>Yes / No checkbox (Boolean)</i> fields</h3><br />We are glad to have rolled in support for Custom Views which can filter records based on <i>Yes / No checkbox (Boolean)</i> fields.<br /><br />Apart from <i>Yes</i> or a <i>No</i>, you may now also see a <i>--not-set--</i> value for fields which do not have a value already set for that field. This can happen in iFreeTools Creator, when you add a new <i>Yes / No checkbox (Boolean)</i> attribute to an existing entity which already has records in database. While the new records will have values for this field, the older records will show a <i>--not-set--</i> value.<br /><br />The records with <i>--not-set--</i> value *will not* turn up in the results if the filed is used in the filtering criteria for that Custom View. If you would like it to be available, you can use the bulk-edit to set the values for that field to either <i>Yes</i> or a <i>No</i>.<br /><br /><h3>Customize the order in which the Custom Views are listed</h3><br />We have also added support customizing the listing order of Custom Views based on <b><i>View Listing Index</i></b> value, which you can now provide in the Add/Edit Custom View form. The views will be listed under the module based on this value, in ascending order. That is, views with smaller <i>View Listing Index</i> value will be listed first.<br /><br /><h3>And more..</h3><br />Apart from these features mentioned above, we have also rolled in a few bug-fixes/improvements, including in the recently added <a href="http://blogs.ifreetools.com/2011/04/whats-cooking-calendar-views-in-your.html">Calendar Views feature</a>.<br /><br />Do keep sending in your valuable suggestions, on how you think we can make iFreeTools better.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4804315647803552547.post-53249373192836010812011-04-05T02:40:00.000-07:002011-04-06T19:32:58.372-07:00What's Cooking : Calendar Views in your Online Database for Google AppsYes, support for <b>Calendar Views</b> is what is cooking up at iFreeTools and it is already available in our labs deployment : <a href="http://labs.ifreetools.com">iFreeTools Labs</a>.<br /><br />All records which have a date or a date-time field will now have an option to view the records in a Calendar View as shown below..<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZDVqrDFMkjjD2GP_n3eMPr4KhwPRKhprU_YaUyB0inHSQj4keWwe0UZEku4ChVnRuhGSrLvmyuH1aMDVcGQKVI_dGNpRtVW1kMfkpMiAeHcjRjHTqiGf5iMWV_mB7IRztgWxPbjxtCT8/s1600/calendar-view-options-if-records-have-date-time-fields-in-ifreetools-labs.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 281px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZDVqrDFMkjjD2GP_n3eMPr4KhwPRKhprU_YaUyB0inHSQj4keWwe0UZEku4ChVnRuhGSrLvmyuH1aMDVcGQKVI_dGNpRtVW1kMfkpMiAeHcjRjHTqiGf5iMWV_mB7IRztgWxPbjxtCT8/s400/calendar-view-options-if-records-have-date-time-fields-in-ifreetools-labs.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5592033595032487858" /></a><br /><br />The calendar view will have options to view the records based on Month, Week or Day. The details view is also loaded via AJAX, as shown below, without you having to leave the calendar view.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglqONptx5CtqX5ApW4tUVXwBQIcqs1mLVq2CTDwR-Gr5bUJL1tsVO0B0ki9C37FbH_UT2HZsDLy-qody_ERLRcJ5vVQxVjedZS7pDWvSXCq3_DY4V7FxFjVUScrWHFo0A21Pdqsev75bg/s1600/pop-up-details-in-calendar-views-preview-from-ifreetools-labs.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglqONptx5CtqX5ApW4tUVXwBQIcqs1mLVq2CTDwR-Gr5bUJL1tsVO0B0ki9C37FbH_UT2HZsDLy-qody_ERLRcJ5vVQxVjedZS7pDWvSXCq3_DY4V7FxFjVUScrWHFo0A21Pdqsev75bg/s400/pop-up-details-in-calendar-views-preview-from-ifreetools-labs.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5592034134174166530" /></a><br /><br />The feature will be rolled into your affordable <a href="http://crm.ifreetools.com">CRM for Google Apps</a> and your favorite <a href="http://creator.ifreetools.com">custom database app builder for Google Apps</a>, in the coming days.<br /><br />The current feature uses any one date/date-time field, at a time, for the Calendar View. We will be coming up with an option to specify start & end fields too, so that you can have the events span across hours and days too. And together with that you will have an option to export the data to Google Calendar in iCal format.<br /><br />Hope you like the new feature. Do keep sending in your valuable suggestions.Unknownnoreply@blogger.com3tag:blogger.com,1999:blog-4804315647803552547.post-80768281372848564112011-03-21T03:45:00.000-07:002012-12-13T19:25:13.197-08:00Alphabetical indexing of database records for Quick filtering, now available in iFreeTools<div dir="ltr" style="text-align: left;" trbidi="on">
We have just made an upgrade to our <a href="http://creator.ifreetools.com/">online database app creator</a> and our <a href="http://crm.ifreetools.com/">online CRM</a> apps, which have been built over Google App Engine for use with Google Apps.<br />
<br />
This upgrade adds support for alphabetical indexing of database records and index links for quick filtering from the list views.<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIZg_jlnyNY_LgPxlMAE5fM_4K3FQQzvrjf1PJgmvahzaIF87Whgq9yHjvyQVK7D22sjSXUIs8k8fqP63i4GzWFgH6OYsKo8WCvhk9lYnQbgnkHo5wHfqgqRslJYq8C895jdFCorwnXJA/s1600/alphabetical-indexing-of-database-records-in-crm-for-google-apps-ifreetools.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5586486882815681634" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIZg_jlnyNY_LgPxlMAE5fM_4K3FQQzvrjf1PJgmvahzaIF87Whgq9yHjvyQVK7D22sjSXUIs8k8fqP63i4GzWFgH6OYsKo8WCvhk9lYnQbgnkHo5wHfqgqRslJYq8C895jdFCorwnXJA/s400/alphabetical-indexing-of-database-records-in-crm-for-google-apps-ifreetools.jpg" style="cursor: hand; cursor: pointer; display: block; height: 125px; margin: 0px auto 10px; text-align: center; width: 400px;" /></a><br />
<br />
This has been enabled for the relevant fields in our default CRM application. For custom database applications built over iFreeTools Creator, you can enable them for String and Reference attributes, by editing the Attribute and selecting the indexing option, as shown below..<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfmy7YShngOnfdfRjNoW8A4y_5GwlxjV62WCecCf-FVtANm98duPrse3XkD_b6D59ReRhXgFNl1gEj6siqry69IeRyEJ9qVQzlA0HZprx946hpJeFLoe9yTktqRJ4i9sxbInDw1nBGtL0/s1600/configuring-for-alphabetical-indexing-of-database-records-in-database-app-creator-for-google-apps-ifreetools.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5586486886519625570" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfmy7YShngOnfdfRjNoW8A4y_5GwlxjV62WCecCf-FVtANm98duPrse3XkD_b6D59ReRhXgFNl1gEj6siqry69IeRyEJ9qVQzlA0HZprx946hpJeFLoe9yTktqRJ4i9sxbInDw1nBGtL0/s400/configuring-for-alphabetical-indexing-of-database-records-in-database-app-creator-for-google-apps-ifreetools.jpg" style="cursor: hand; cursor: pointer; display: block; height: 335px; margin: 0px auto 10px; text-align: center; width: 400px;" /></a><br />
<br />
Multiple attributes can be configured to be indexed and they will all be available for filtering from the list views. If there are more than one alphabetical index, you will find a <i>more..</i> button which you can click to view all filtering indexes. <br />
<br />
For existing records (added to the database, before enabling the index), you will have to perform a re-indexing operation once, from under the list views <i>More Actions</i> > <i>Re-Index</i>.<br />
<br />
Hope you find the new feature useful. Keep sending in your suggestions.</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4804315647803552547.post-38080117966803330562011-03-18T05:42:00.000-07:002014-05-27T00:15:49.330-07:00Attach Google Docs to Database Records in iFreeTools CRM & Creator<div dir="ltr" style="text-align: left;" trbidi="on">
Our <a href="http://crm.ifreetools.com/">CRM for Google Apps</a> and <a href="http://creator.ifreetools.com/">Online Database App Creator for Google Apps</a> now support attaching of Google Docs to the records within the database.<br />
<br />
<table style="-moz-border-radius: 7px; -webkit-border-radius: 7px; background-color: #f9cb9c; border: 1px solid #e69138; outline: none;"><tbody>
<tr><td><b>Update : </b> <br />
We have upgraded this feature to support attaching any file / folder from within Google Drive. More details are available in this blog post : <a href="http://blogs.ifreetools.com/2014/05/attach-files-or-folders-from-google.html">Attach files or folders from Google Drive to your database records</a>.</td></tr>
</tbody></table>
<br />
Below the record details in the details page, there is now an option to attach a file from Google Docs. When you click on the <i>Attach a Google Document</i> button, you will be required to authorize the Google Docs account to use, this can be a Google Docs account associated with either Google user account or with a Google Apps user account.<br />
<br />
After authorization you can view the list of files in that Google Docs account, with details like the file name, file type and the person who last modified it as shown in the image below..<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJEXwGP2Tgsv5Z2xNRUE4a0MdvG8jV8du8pom6LmDUIE4KShoSutRIcRqZYJ13fI2iAhExzV3ztmHWn5nEk1uOmnWwp_jmDToXd71BdMECyXaOMTnGkS_dW2PTgcqjc7ZlKR2bB0VLPag/s1600/Attach-Google-Docs-to-database-records-in-iFreeTools-CRM-and-iFreeTools-Creator.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJEXwGP2Tgsv5Z2xNRUE4a0MdvG8jV8du8pom6LmDUIE4KShoSutRIcRqZYJ13fI2iAhExzV3ztmHWn5nEk1uOmnWwp_jmDToXd71BdMECyXaOMTnGkS_dW2PTgcqjc7ZlKR2bB0VLPag/s400/Attach-Google-Docs-to-database-records-in-iFreeTools-CRM-and-iFreeTools-Creator.jpg" id="BLOGGER_PHOTO_ID_5585403404418082098" style="cursor: hand; cursor: pointer; display: block; height: 157px; margin: 0px auto 10px; text-align: center; width: 400px;" /></a><br />
Just click on the <i>attach</i> button and the file will now be linked to your database record.<br />
<br />
All such attachments will be listed below the record details, as shown below..<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTgECwSQDF7ngYPqoJ0lvjNbsvpKTkXJ0Mij1oM9QKNM5_M-4wiS8SAoQgvAbw0rUGuGL2V0JaVoEYOVZmVZIbDR-qlQkmeKxBQ9uExsmPhOQU3qrmTtSZBMITTR4OHAE-0DeAqKQ_VRo/s1600/Google-Docs-Attachments-in-record-details-page-in-iFreeTools-CRM-and-iFreeTools-Creator.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTgECwSQDF7ngYPqoJ0lvjNbsvpKTkXJ0Mij1oM9QKNM5_M-4wiS8SAoQgvAbw0rUGuGL2V0JaVoEYOVZmVZIbDR-qlQkmeKxBQ9uExsmPhOQU3qrmTtSZBMITTR4OHAE-0DeAqKQ_VRo/s400/Google-Docs-Attachments-in-record-details-page-in-iFreeTools-CRM-and-iFreeTools-Creator.jpg" id="BLOGGER_PHOTO_ID_5585402168115637026" style="cursor: hand; cursor: pointer; display: block; height: 247px; margin: 0px auto 10px; text-align: center; width: 400px;" /></a><br />
Attaching a file in Google Docs does not duplicate the contents, but directly links to the document in your Google Docs, making sure the latest doc can be accessed from the record.<br />
<br />
The security settings set in the Google Docs are still applicable and you need not have to duplicate those setting again. When someone clicks on the attachment link, they are taken to Google Docs directly which handles the security settings.<br />
<br />
<b>Update :</b>When attaching files from Google Docs to your records, you now have the option to search for the required file based on text, to narrow down the files and attach the required file to your record, as shown in the image below.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoQsh4LM03dzJ5RXdSqZwVT5G0rl3EDp1H4L_Z_DAm0Rsc4_LqmoRugiEifyNDme_HOOg_KXQS-5DOMl80Ost9LGhJHzdd2wxv9erqsRCqG0Om5XOcSVZsf-xx6cFq6yc6Y1DNvoIcgf0/s1600/search-and-find-files-in-google-docs-to-attach-to-database-records-ifreetools-creator.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoQsh4LM03dzJ5RXdSqZwVT5G0rl3EDp1H4L_Z_DAm0Rsc4_LqmoRugiEifyNDme_HOOg_KXQS-5DOMl80Ost9LGhJHzdd2wxv9erqsRCqG0Om5XOcSVZsf-xx6cFq6yc6Y1DNvoIcgf0/s400/search-and-find-files-in-google-docs-to-attach-to-database-records-ifreetools-creator.png" height="150" width="400" /></a></div>
<br />
Hope you find this new feature useful. Keep sending in your suggestions.
</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4804315647803552547.post-17345394775627265212011-02-15T04:55:00.000-08:002011-02-15T05:40:37.372-08:00Google Contacts integration : Import-to / Export-from any database table, in iFreeToolsHaving come a <a href="#ift_import_history">long way</a> in our support for importing data into iFreeTools, today, we are glad to announce support for importing contact details from Google Contacts into any database table which has an email-id field, along with support for exporting contact details from such tables back into Google Contacts. <br /><br />Using Field Mappings we have enabled mapping a virtual Google Contact entity to entities within iFreeTools database and use these Field Mappings to integrate with Google Contacts, with the help of Google Contacts API. <br /><br /><a href="http://crm.ifreetools.com">iFreeTools CRM</a> will have out-of-the-box native field mappings defined for Contacts, Leads and Vendors. You can also add Field Mappings for your custom entities in <a href="http://creator.ifreetools.com">iFreeTools Creator</a>, to enable importing / exporting the contact details in your custom database tables.<br /><br />When Field Mapping is not found for an entity with an email-id field in iFreeTools Creator, you will find a button to <i>Enable import from Google Contacts</i>, below the list views. Clicking on the button will take you to the Field Mapping form. Such a form loaded for mapping Owner entity in our sample database app over iFreeTools Creator is shown below. If the field names match the fields will be mapped by default, like the <i>Notes</i> field as shown in the below image.. <br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBaDP3SXjMeuhBb2JuKqXju3RS9pUR_NLvAXWMpd5Edz9aJZhZgGmmakdfSZHonQHLsOTJZcF3lTWF-HiBVYIQlKvkvBRTndT4CnT8KaPbUpPCTx1sAMSkjVcBh2eDm5ARbCdHJXiH3fg/s1600/adding-field-mapping-to-import-google-contacts-into-your-custom-database-table-initial-form.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 356px; height: 400px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBaDP3SXjMeuhBb2JuKqXju3RS9pUR_NLvAXWMpd5Edz9aJZhZgGmmakdfSZHonQHLsOTJZcF3lTWF-HiBVYIQlKvkvBRTndT4CnT8KaPbUpPCTx1sAMSkjVcBh2eDm5ARbCdHJXiH3fg/s400/adding-field-mapping-to-import-google-contacts-into-your-custom-database-table-initial-form.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5573901249600382338" /></a><br /><br />You can proceed to complete further mapping of the fields. You can store value from more than one field into the same field. For example, <i>Phone/Mobile</i> will be the destination for <i>Phone1</i>, <i>Phone2</i>, <i>Mobile Phone</i>, <i>Home Phone</i> and <i>Skype Id</i>. Similarly <i>Alternate Email Ids</i>, <i>Fax</i>, <i>Other Address</i>, <i>Home Address</i> and <i>Notes</i> from <i>Google Contact</i> have all been mapped to <i>Notes</i> field in <i>Owner</i>..<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrrSqE1grJPFLX8riFBz8vIH5gCe3prhfphak_vGPBrVuPi4hNWA37rf5nmXr2IL6NT8G-HRtRUFVA8MBEdOTvVnqYKeWb9hnPmydKXutsmDYWhmt1eD75-go-Q_fMRrulwGElInATV-M/s1600/adding-field-mapping-to-import-google-contacts-into-your-custom-database-table-seleting-fields.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 368px; height: 400px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrrSqE1grJPFLX8riFBz8vIH5gCe3prhfphak_vGPBrVuPi4hNWA37rf5nmXr2IL6NT8G-HRtRUFVA8MBEdOTvVnqYKeWb9hnPmydKXutsmDYWhmt1eD75-go-Q_fMRrulwGElInATV-M/s400/adding-field-mapping-to-import-google-contacts-into-your-custom-database-table-seleting-fields.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5573901247326300962" /></a><br /><br />The reverse mapping view shows the details on the multiple source fields getting mapped to a single destination field..<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhguKrTKeL0zIW242eZwsxQCcobwPyEEhyphenhyphenFiShE5MOC2HVG4Vw0atJF2xSdsu_p_OSkAZU6C7BEpAJUevG3bsvNeemlaLq0F-kIGd_mgtFjzF70fdoyIX4KlbRfxzhqqsEKekSxyfPBzCY/s1600/adding-field-mapping-to-import-google-contacts-into-your-custom-database-table-seleting-fields-reverse-mapping.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 142px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhguKrTKeL0zIW242eZwsxQCcobwPyEEhyphenhyphenFiShE5MOC2HVG4Vw0atJF2xSdsu_p_OSkAZU6C7BEpAJUevG3bsvNeemlaLq0F-kIGd_mgtFjzF70fdoyIX4KlbRfxzhqqsEKekSxyfPBzCY/s400/adding-field-mapping-to-import-google-contacts-into-your-custom-database-table-seleting-fields-reverse-mapping.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5573901251973092642" /></a><br /><br />Adding such a field mapping enables importing the Google Contacts directly into the Owners database. <br /><br />Like wise, it is necessary to add the mapping for exporting Owner details back to Google Contacts. <br /><br />Exporting of records will be possible once you have authorized iFreeTools to connect on your behalf with Google Contacts, using its data APIs. This will be done when you try to import from the Contacts, that is clicking on <i>Import from Google Contacts</i> and completing the authorization step.<br /><br />Once authorization step has been completed, you will find a upload icon in the list views for each of records. You can then click on them to selectively export the required records to Google Contacts. Bulk export of contacts into Google Contacts will be supported subsequently. If a contact already exists in Google Contacts, it will be over-written with the full set of details from iFreeTools, based on the field mapping for export.<br /><br />Hope you like the new feature.<br /><br />----<br /><br /><a name="ift_import_history"></a><b>A little bit of history, leading up to this feature. </b><br /><br />iFreeTools initially <a href="http://blogs.ifreetools.com/2010/03/export-import-data-as-csv-bulk-delete.html">had CSV import alone</a> and that too without field mapping. That is, the fields in CSV file are supposed to have specific set of column names expected by our import system. So, to get contacts details from Google Contacts, one had to export the Google Contacts into CSV, map the header names manually in the CSV file and them import them into iFreeTools.<br /><br />While our initial feature was good enough to help enable import process, we wanted to make things easier for our users. So we added <a href="http://blogs.ifreetools.com/2010/07/import-field-mapping-now-available-in.html">CSV import field mapping feature</a>, to enable mapping the fields in CSV file to those in the database records, enabling CSV files with proprietary column headers to be mapped and imported easily into the database. This mapping could also be saved for reuse in subsequent imports in the same format, typically from the same source.<br /><br />As all our users have a Google user account or a Google Apps user account, we wanted to integrate well with Google services, particularly Google Contacts. So, we followed up with support for <a href="http://blogs.ifreetools.com/2010/08/importing-google-contacts-into-crm.html">importing Google Contacts</a> using Google’s APIs, directly into the Contacts database in iFreeTools CRM. <br /><br />To import the contact details using Google APIs into some other database table - may be Leads, Vendors, or may be into a custom database table created in iFreeTools Creator - was still not possible. Uploading contact details back into Google Contacts was also not possible, until today's feature.<br /><br />We strive to keep adding new features while also improving features to make them easier, for our users. Keep sending in your suggestions on how we can make things better for you. You may use the feedback form in the application or you may send a mail to <a href="mailto:raj@sahasvat.com">raj@sahasvat.com</a>Unknownnoreply@blogger.com2