Changelog

We want this page to be useful, so we just describe the most notable changes to our Widget and API. Occasionally, we’ve listed a bug fix when it is of interest but usually we skip those so we don’t overwhelm this page.


January, 2024

  • BetterSharing for WordPress 2.5.2 – This version adds the much-requested success screen that communicates that one or more emails have been sent. In addition, we made some improvements to the administration pages and made the Reply-To configuration options more understandishable. Furthermore, we resolved a conflict with the “Simple Custom CSS and JS” plugin. And finally, we started overusing transitional phases in our changelog updates.


December, 2023

  • BetterSharing for WordPress 2.4.0 – In this version we made new template variables that can display dynamic data and be overridden in the UI Template or by meta tags on the specific page. We also now create a reasonable default UI and Email Templates during plugin installation.

  • We updated the display of the Google Contacts button to align with Google’s Branding Guidelines and facilitate their approval.


November, 2023


October, 2023

  • BetterSharing for WordPress 2.3.0 – We added filtering to the custom message to prevent users from abusing the sending feature.

  • BetterSharing for WordPress 2.2.1 – We added an email preview for users to see how their emails will appear to recipients before sending.

  • We want to know when a project was last accessed, too. Now we are tracking it.


September, 2023

  • Our customer portal reports recent activity for sites so you can see at a glance when we last saw contact picker activity on your site.

  • Better Sharing for WordPress now supports multiple instances being loaded on a single page. Each one operates independently of the others.


August, 2023

  • We are continuing to crush bugs in our updated customer portal.


July, 2023


June, 2023


May, 2023

  • Our frost theme had a conflict that showed up on some sites. We resolved it neatly.

  • We added photos from Google Contacts to the payload. Include "photo" to get them in the contact data.


March, 2023

  • We launched V3 of our customer portal to all new sign ups. Enjoy the new experience!


February, 2023

  • We fixed an issue where our raw contacts metrics were not reporting correctly when filtering by a site. Thank you to those of you going deep on metrics!


January, 2023

  • A new customer portal is in the works. We’re confident that this will make getting started easier for new customers. It’s also going to reduce confusion for existing customers. We’ve learned a lot about what works over a decade of supporting CloudSponge customers and we’re applying it to this new experience.


December, 2022

  • We’ve been working for a while on supporting a weekly email with highlights from your CloudSponge usage. We’re starting to test it now with a few customers. If you are not getting these weekly updates, look forward to receiving these emails soon.

  • CSV imports now support additional fields. Any header starting with `company_` will map to our contact’s `companies` property.


November, 2022


September, 2022

  • We’ve updated our BetterSharing JS plugin to make it easier to send emails. By default the installation will open a mailto link. When you are satisfied that you want to take it to the next level, go ahead and optionally connect your ESP via Zapier.

  • A pesky bug got fixed where some of our variables leaked into the global context. Sorry about that! We quit the habit.


August, 2022

  • Our Contact Picker got a couple new options that let you easily change the main colors to match your site. Just follow our simple example here to transform your Contact Picker!


July, 2022

  • We launched our setup assistant, making it easy (and fun!) to explore the capabilities of our Contact Picker.


June, 2022

  • We don’t like mailto links. In fact, we hate them. We detest them so much that we added an easy feature to our Better Sharing JS to take over any mailto link and make it use better-sharing to pick email recipients and then send them to Zapier.

  • We fixed our neon theme’s CTA button colour. It was possible for underlying CSS to leak into the Contact Picker previously.


May, 2022


April, 2022


March, 2022

  • When the Sapo.pt web service returns a maintenance error, our Sapo source will also return this information.


February, 2022

  • Version 1.7.0 of Better Sharing for WordPress has shipped. This release includes a fix to the email preview for AutomateWoo Refer a Friend add on and a significant update to our first user experience on the main Better Sharing page. Enjoy!

  • CSV files come in many different shapes and sizes. We’re always updating our CSV file heuristic to better meet the needs of customers in the wild. We’ve added a new single address field support to the file format which allows the addition of an address field that will map to the formatted address field in our payload. 


January, 2022

  • iCloud address books have always been a challenge for users to connect. This is because Apple doesn’t provide a guided OAuth flow to authorize other apps. Instead they make users manually create an app-specific password for each third party app. The good news is that this method provides the same functionality as OAuth. The bad news is that the user experience is … less than ideal. Which is a surprising choice for Apple, UX leaders. So we’ve made changes to our Contact Picker’s UI that makes it clearer that people need to create their app-specific password to connect their iCloud contacts.


December, 2021

  • Google has changed their OAuth user experience so that by default, a user will not give any permissions unless they take additional actions when an app requests more than one permission at a time. They’ve also changed their permissions for the supported People API so that we need to request access to read “Contacts” as well as “Other Contacts” to provide the expected behaviour where people see all the contacts that they normally would in their Gmail account. We’ve mitigated this by implementing an incremental OAuth request strategy to request a single permission at a time.

  • Sapo.pt (and Sapo.ao) switched to a new login flow that uses a two step form submission. We were alerted by our monitoring service that this change broke our integration. So we fixed it and Sapo address books are accessible once more.


November, 2021

  • In the beginning days, we made the include option exclude mailing addresses by default to speed up processing and conserve bandwidth. It leads to confusion for developers because it’s not clear that this option needs to be enabled before seeing the mailing addresses in the contacts payload. Rather than continue to make people understand this requirement, and in consideration of these addresses being more commonly useful and easier to access as time has gone on, we now always include the mailing addresses in the payload. There’s no need to specify an option to get this data.

  • We fixed an issue where our API was reporting a hard failure after a recoverable error. Google Contacts API was returning an error but we are still able to retry the access using their People API.

  • We’ve been hard are work making it easier for new customers to get started with the Contact Picker and level up their customers’ ability to connect with friends and family.


October, 2021

  • Modern mobile devices are able to store files locally and upload them to the web browser. We’ve enabled this feature on our Contact Picker.

  • We pride ourselves on being inclusive and we want to ensure that Contact Picker works for all. We’ve reviewed our Contact Picker with an eye to current accessiblity requirements. We were lacking and so we corrected it.


September, 2021


August, 2021

  • We are pleased to announce a significant release of Better Sharing for WordPress. Version 1.6.0 has been released! This version includes an overhaul of our block editor and the shortcode. We’ve introduced a UI Template that you can use to customize the UI of the block or shortcode. Neither the block nor the shortcode supports the same options as they previously did, so you will need to redo your customizations in your Better Sharing plugin. Contact us for additional support with migrating to the new UI Templates!

  • We fixed the link to test Google OAuth from your CloudSponge account. It now includes the scopes that you set in the OAuth credential’s properties.

  • Google People API is returning some empty group names. We fixed it so that these groups are excluded from the data returned.

  • To reduce confusion, we no longer display Google Contacts as a source in the Contact Picker if Google OAuth is not set up. This prevents the unfortunate situation where a user will see a confusing error to them.


July, 2021

  • Better Sharing for WordPress 1.5.7 has been released! This version contains improvements to our sharing interfaces, making them even better. We also fixed some issues in loading the Contact Picker in our WooCommerce add-ons and

  • Our new Better Sharing Metrics now can be filtered by site. On the dashboard, you’ll see a dropdown menu that lets you select whether to see the aggregate metrics for all sites or just for your live sites, or your test sites. Additionally, you can view the metrics for a single site if you first find that site on the Sites sidebar item. Click on the small 30-days chart and you’ll see a replica of the dashboard with activity for the single site. The ability to view metrics by a single site is a long-requested feature and we’re excited to have it launched.

  • Our API and Contact Picker sources have not changed in a long time and we’re still using windowslive as the name for Microsoft address books. That name will continue to work, but moving forwards we also accept outlookcom for Outlook.com address books.


June, 2021

  • We’ve added a Partner Program to CloudSponge, enabling our partners to help bring our Universal Contact Picker, Perfect Personalization, and Better Sharing Metrics to their customers more easily.

  • We added support for Google’s People API. This is a major change. All customers will need to update their Google OAuth projects to be able to access the new API.


May, 2021


April, 2021

  • We have continued to roll out our new metrics dashboard to customers AND it got a facelift already! We moved the metrics that we think are the most important to the top of the page, added a funnel view of the Contact Picker usage and kept the details at the bottom of the page. We’re really excited to get your feedback. If you don’t see these new metrics yet, reach out to us and we’ll prioritize enabling them for you.

  • Better Sharing for WordPress 1.4.1 is here! With it comes better support for the Better Sharing Gutenberg block and shortcode so you can add a sharing feature to any page on your site.


March, 2021

  • We’ve been gathering some additional Contact Picker metrics for over a year now, jealously guarding our “precious” data. We’ve finally started to share a preview with a few accounts and will be making it available to more over the coming weeks.

  • Yahoo sunsetted their proprietary Contacts API in favour of a standards-based CardDAV integration. We extended our Yahoo integration to support both APIs for now. This ensures that existing integrations continue to work as we sus out the new integrtion.

  • An update to our middleware had an unintended side effect: HTTP redirection stopped automatically including the host in the request. This created an issue only if you were using one of our old integration libraries to implement a server-side Proxy URL. In these rare cases, your users would not be redirected properly at the end of the OAuth flow and they would have to manually close the popup window. Once we detected the issue, we fixed it and added a regression test.

  • There was an unhandled exception being raised when the contact picker javascript loaded in a browser with a third-party script blocker. Ironically, this condition was only happening if we had enabled our exception reporting library for the widget key. Quis custodiet ipsos custodes? Fortunately, code is simpler than people and we’ve told it to watch itself!


February, 2021

  • Better Sharing boosts the engagement of your referral program. And it’s now live on wordpress.org which means you can find it and install it directly from your WordPress administration interface. We published it here with some additional features too. We improved our existing add-on support. And you can now add the Better Sharing form to any page. So you can add Better Sharing even if you don’t use WooCommerce!

  • Yahoo deprecated their Contacts API and moving forward, all new Yahoo apps need to use the standards-based CardDAV integration to access user’s contact data. Our system supports both integrations, so we got you no matter what you need.


January, 2021

  • January is our month to take a breath and catch up on those important-but-not-urgent housekeeping tasks. This year, we repaid some technical debt to start off the new year. It feels good to balance the account.


December, 2020

  • We are putting the control into your hands when it comes to which sites you want to allow the Contact Picker to work on. You will start to see important emails notifying you when your key is used on a new site. Just sign into CloudSponge to approve the new sites for use. We won’t bill you for the site unless you explicitly allow it.


November, 2020


October, 2020

  • We are proud to announce our integration with KickoffLabs using Better Sharing. This plugin stitches together CloudSponge and Zapier on your KickoffLabs thank you page, making it easier for users to refer their friends.


September, 2020

  • We updated our user-facing documentation so that they can find the correct way to access their desktop Outlook address book.


August, 2020

  • Google’s OAuth verification process is rife with challenges, not the least of which is just knowing the state of your verification application. This makes it hard to know whether your Google OAuth is truly looking good to your customers. This is because Google won’t always show an error to the developer of the OAuth credential when testing the flow. Well, we are handling it for you by proactively testing your production Google OAuth each day and letting you know how it’s looking. If there is a problem, we’ll send you an email and show you the details in your account.

  • We added two new languages to our Contact Picker. German and Japanese are now available for our locale option.


July, 2020

  • We simplified the onboarding wizard in our customer portal. It used to contain five steps but now we only have the most important three. At the same time, we started to highlight necessary actions that didn’t get in the way of launching your Contact Picker in production so that customers know when there are outstanding items to address, such as OAuth setup.


June, 2020

  • We rebuilt the search functionality in the Contact Picker. Searching now matches as expected and treats special characters and spaces properly. 💥

  • The customer portal is now displaying the default system OAuth credentials that will be used if you haven’t added your own credentials. Of course, this never includes Google’s OAuth credentials. You still need to bring your own.


May, 2020

  • We made some updates and optimizations to keep our service running well and securely.


April, 2020

  • Certain errors on setup were never being displayed in the widget. Occasionally, we’d get support requests relating to Google’s 403 error when the Contacts API is not enabled for an OAuth project, for example. Now these error messages will display inside the widget, so developers can address them immediately. Don’t get us wrong, we love talking to our customers. But this seemed like a good way to make life (or at least integration) easier for you folks.

  • We saw some internal timeout issues which we now prevent by using a distributed mutex. These rare issues were causing clusters of failed attempts to authentication on the widget.


March, 2020

  • The widget was suffering from an infinite loop in a rare case of options. This egregious bug was squashed.

  • Our API has accepted a userId parameter since Old Ben was called Obi Wan. But the Widget wasn’t outfitted with this particular param. We’ve added it to the widget so that you can get back to bullseyeing womp rats.

  • Our API got a bit of love, fixing some edge case issues with our Outlook.com People API integration (sometimes we get an empty response) and our CardDAV integrations (we are retrying failures with a backoff now).

  • We are properly delaying the afterInit call until initialization is complete even after calling init for a second (or third or subsequent) time.


February, 2020

  • It has been a while since our infrastructure was updated. We slowed down this winter on new development in order to migrate to a more scalable database and we spent some sprints on nuking old code. Wow! It feels good to repay some technical debt. We had a very brief window of down-time this month to do the switchover without losing any data. Thanks for your understanding!

  • Fixed and improved our Office365 integration. Apparently, we should not request too many contacts at once. Fine. We can deal with that. But also, we’re integrating with two of Microsoft’s APIs (Contacts and People APIs) in order to ensure that we don’t just get your contacts, we also get your organizational contacts. This aligns better with the user experience of composing an email from Office365 since your organization’s contacts show up here too.

  • We were permitting customers to call cloudsponge.end() from within the beforeClosing or afterClosing callbacks. This made it possible to create an infinite recursion loop in the browser javascript. Now we guard against it by detecting if the widget is already cleaning up before cleaning up before cleaning up before cleaning up before cleaning up… ad infinitum.


January, 2020

  • The @ character used to mess up our search results. Now it behaves as expected so users can search for someone@domain.com.

  • Company contacts look great in the widget; we now display a company name in the widget when the first name and last name isn’t present.


December, 2019

  • CloudSponge now has a referral program! If your account is on a paid subscription, you can send out referral emails (using our widget, of course) and give the gift of CloudSponge to those who need it. Thank you!

  • We’re always surprised when a CSS style leaks through between your app and our widget because we thought that we’d reset them all. It turned out that box-shadow slipped through. So go ahead and apply any box-shadows or any other styles 🤪 without fear of it making the widget look weird on your site.

  • This was a tricky issue that we resolved when our widget is being hosted inside an iFrame.

  • We now do a better job of guessing when a user uploads a tabular file that doesn’t contain header information when there are up to three columns. We do our best to properly map an email, first name and last name from the data.

  • .xls and .xlsx files are now supported! Users can now attach one of these files in the widget and we’ll parse them.


November, 2019

  • Yahoo recently announced that its profile API is being deprecated in the new year. Rather than wait for it, we got a jump on the update and fixed it while you were busy being awesome. If you are interested in how we did it, or you just want to show your boss what a great decision you made you when you chose CloudSponge, have a look here.

  • The widget used to launch with a flash of unstyled content (aka FOUC) when using a custom CSS and programmatically launching the widget immediately as the page loads. We exterminated this bug.

  • This is one of those annoying little things. It is an easy fix, but everyone would rather do something else than worry about it. That’s why we’re here. We worry about it and we fix it. It’s so small that should I even mention it? OK… The popup window for Yahoo was just a bit too narrow and their form wasn’t rendering very nicely. It’s prettier now that we’ve given it space to express itself. Pretty trivial, right?


October, 2019

  • ⚡Our Zapier integration into beta to allow customers to begin testing with it. If you are interested, submit a request to get early access to this powerful new feature!⚡


September, 2019

  • BOL’s interface changed without warning (they never tell us, our monitoring system detected it). So we fixed it! Read more in our news.


August, 2019

  • ⛏️ We’ve started to lay the groundwork for a larger project that will let us add an exciting new feature. Stay tuned for the announcement!


July, 2019

  • I have good news for customers who depend on us for international address book sources. after a brief interruption, UOL is working again! Our monitoring service alerted us to the fact that UOL made some changes to their interfaces last Friday, and we fixed it by Monday.


June, 2019

  • It would sometimes take several seconds for the widget to render a very large address book on the screen. We never felt good about this, and so we’ve addressed the issue by adding and removing the items in the list as the user scrolls and searches it. Additionally, we don’t wait for the entire list of contacts to load, we render the list in batches so that the user sees their contacts immediately. The result: contacts render 2x faster and searching is 4x faster! (queue applause)

  • The callback functions we support are now passing in a deep copy of the contacts used by the widget. This means you may modify the array of contacts to your heart’s content and it won’t change the behaviour of the widget.

  • When iCloud logins fail, it’s usually because an app-specific password needs to be created first. We’ve added a message to this effect on the appropriate error form to help guide users to the desired outcome.


May, 2019

  • We welcome to the latest member of our growing library of themes. The inline theme removes the widget overlay and lets you include it directly inside an element on your page. Check out our new example to see it working.


April, 2019

  • After a long hiatus, Yandex.ru support has been restored. We had to invent a new way of capturing address books for this source and it has been working great.

  • Our widget was overwriting existing contacts in a target textarea. This has been fixed so that users don’t obliterate contacts that they’ve already added.


March, 2019

  • OAuth credential can now be specified by passing an option. This applies to our widget and our Contacts API. This is handy if you want to choose a different OAuth credential on a single page. Here are the docs.


February, 2019

  • We’ve added our internal ID for address book imports to the webhooks generated by the widget. The webhooks payload is now nearly identical to the response from the Contacts API, which is handy since your app doesn’t need to poll for the information.


January, 2019

  • Some customers were unable to sign in to their billing portal because our app was letting the links expire. We are now properly updating these links so you’ll always have access to your statements and billing information directly from your CloudSponge portal.

  • We’re constantly updating our content to reflect the most accurate and latest instructions. This time is was Mac Contacts that needed some helping, so we did the needful.


December, 2018

  • We introduced the sortBy option to let you organize the contacts in the widget by their first name. Check out the sortBy option documentation for details.

  • Gmail can be Google Contacts or whatever you like! We made it possible to change the names of the sources that are displayed in the widget by using the locale or localeData option.


November, 2018

  • We fixed an issue with clock skew and our short-lived auth token for the widget. The problem was that on some user agents, the auth token looks invalid before it expires on the server. This isn’t a problem in most cases, but on some systems, the clock was skewed too far and even a fresh token looked like it had expired. The solution was to simply trust any fresh tokens that the client receives and let the server reject it if it isn’t valid.

  • When our widget is hosted inside an iframe on a page, we now capture the site from the parent of the iframe. This change should not have any impact on any existing integrations. However, if you are using our widget inside an iframe, let us know and we can help verify that your installation is solid.


October, 2018

  • Mailing addresses can now be displayed in the widget using the displayContactColumns option. Check out the sample here.

  • Added support for authentication using a JWT.

  • Fixed an authentication issue that prevented the widget from authenticating properly in a few cases.


September, 2018

  • We’re very proud and excited to share our new customer portal. We believe that it makes it much easier for you to set up your CloudSponge account and monitor its performance.

  • Added the address book’s import ID to the beforeImport callback so that customers may download the address book asynchronously to their app server.

  • Investigated slow imports from Gmail and fixed it by sending the appropriate headers to force a compressed payload to be returned.


August, 2018

  • Added real-time monitoring for our upstream requests. This will help us proactively identify if any address book providers are performing poorly.


July, 2018

  • We laid the groundwork for better verifying your Proxy URL as you set up your Google OAuth and others. The rest of these changes are coming soon; stay tuned.

  • We spent some cycles digging into and resolving a few intermittent errors in the widget. Hardly worth mentioning. But the widget’s better for it.


June, 2018

  • New language: Dutch! 🇳🇱

  • We added a beforeGathering callback to indicate the moment when contacts are starting to be collected from the address book source.

  • Our Yandex.ru integration was misbehaving, but now it’s back.

  • Physical addresses were not being parsed correctly from AOL, iCloud and some others. Now they are. 💥


May, 2018

  • GDPR happened and we are all still here. We have made an update to our … OK, OK, I know that you’ve heard it many times already. I won’t repeat it. But If you haven’t gotten enough of it, you can read about how we comply with the GDPR.

  • Our Yandex.ru integration needed some love. So we gave it some. And by that, I mean that we updated the magic URLs. Bol had also broken, so we fixed it too.

  • PhantomJS was raising errors in the widget code. If you are performing automated testing on a page with our widget, it should work properly, just like in a browser.


April, 2018

  • We have an option to disable tracking and cookie use in the widget to help customers comply with GDPR’s requirements. If your users in the EU haven’t consented to tracking or cookies, use noTracking: true to turn it off. And here’s a [trivial example(/address-book-widget/examples/noTracking/).

  • Out Outlook.com imports now pull from the Microsoft Contacts and People APIs in order to better reflect the contacts that users see in their Outlook.com address book. We had noticed that some of our ancient contacts from Hotmail didn’t show up in imports. Now we grab these and we also access contact information from people who appear in your email list. Oh, and this is a ditto for Office 365. 💥

  • We can now parse CSV files that use underscores in the name field headers. We also return the notes field for more sources like Yahoo, iCloud and AOL.


March, 2018

  • AOL got a big update after they turned off their Contacts API. We might have set a record for updating our integration to use their CardDAV service. We didn’t exactly cheat, but we’ve don’t this kind of integration a few times before.

  • Sorting in our widget was only taking the first letter into account which was weak. Now contacts appear sorted, as in like a dictionary.


February, 2018

  • We have added more complete contact data for Gmail. Look for notes, relations, websites, ims and custom data in the payload.


January, 2018


December, 2017

  • Happy Holidays! Since updating the widget architecture, we’ve kept an eye on it and fixed a few bugs.


November, 2017

  • The bulk of our development efforts have been focussed on the latest big change to our widget. We have accumulated some technical debt and it was time to pay it down. We’re very excited about our lighter, faster, stronger widget.

  • We have started to internally monitor for issues with any of our OAuth sources. We can detect issues with your Proxy URL, or your OAuth app for Google, Yahoo, Outlook.com or Office365. If something seems amiss, we’ll reach out to you.

  • There was an bug with parsing VCards with multiple contacts, we squashed it. Terra’s interface has changed so we updated our API to accommodate it.


October, 2017

  • You can now suppress the confirmation dialog when a user deselects all their selected contacts.

  • We’ve been hard at work laying the foundation for a newly architected version of the widget. It’s going to be much faster and user fewer web requests to load fewer and smaller assets. It’s a bit of repayment of some technical debt that we’ve accrued and it’s feeling great!

  • Customizing our stylesheet is OK if you want to make a couple simple changes like colors, margins, padding, borders, etc. If you are interested in bigger changes like moving elements around or suppressing the mobile display then you shouldn’t need to learn our CSS in depth to achieve your goals.
    Enter Themes! Each theme is a unique starting layout for our widget. You can further customize the theme with your own CSS. Our first two themes are live.
    If you want to propose something complete different, send us a mock up of what you’d like the widget to look like and we’ll see what we can do.

  • LInkedin make some changes to their UI and zip file format so we are keeping pace as they bob and weave.


September, 2017

  • Themes have come to the widget, starting with a very basic one that suppresses the responsive layout. If you are considering applying a custom style using the css option, reach out to us to ask about a new theme instead.

  • SPA and Turbolinks support! You can now load the widget script in the head of the page and call cloudsponge.init(...) whenever you need to (re)initialize the widget before launching it.

  • We’re always happy for a chance to improve the accessibility of our widget. This change suppresses the tabstops on hidden elements in our UI to reduce confusion of screen readers.

  • In the few months since publishing our document on the Google OAuth review process, there have been some changes and we’ve received feedback from a bunch of you who have run into hurdles put up by Google. We’ve update the document with our most recent learnings.

  • Setting up your Google OAuth credential from scratch is easy, when you know how. We published a single document aiming to achieve enlightenment in this area. Let us know if we succeeded or not.


August, 2017

  • Looking for a way to manage your CloudSponge payments in one place? Look no further! We are now part of the AWS Marketplace where you can manage your CloudSponge subscription and payment directly within your AWS account. Check out our listing!

  • You can now display phone numbers in the contact list and users can pick from multiple ones to submit. It works on desktop and mobile UI.

  • Users can now search for contacts by the name of the group that they belong to.

  • Our widget was hiding the important messaging about refreshing your contacts from the source when there was nothing to display in the list. Well that’s fixed now.


July, 2017

  • Mail.ru now returns more contacts! The OAuth APIs that Mail.ru exposes do not return a meaningful number of contacts that have an email address. To improve the result, we changed the import type to accept a username and password. Don’t worry. We’ve taken care of everything for you if you are using our widget.

  • We fixed Linkedin CSV parsing when individual files are uploaded instead of the whole zip file. Linkedin confusion has been reduced just a little bit more.


June, 2017

  • Lots of folks have been asking us about the new Google OAuth Review process so we summarized our knowledge on how to navigate the new requirement.

  • The widget now uses a CSS class to indicate the current state on the container. This means that it’s easy to do things like hide the UI only while an import is in progress using just CSS!

  • The afterImport callback is now invoked when popup closes prematurely so your app can immediately detect and respond if the user abandoned the import.

  • The new skipContactsDisplay allows you to declare that you want so suppress the contacts selection screen explicitly. We think it’s a lot clearer like this.

  • No longer does the onlyGroupedContacts option conflict with a custome filter. Both are given due respect.

  • Fixed imports from Linkedin and Yandex.


May, 2017

  • Linkedin launched a whole new user interface and with it came a change to how they allow users to export their contacts. We updated our service to accept the new data archive zip file and also present specific instructions to users to help guide them through this new process.

  • Google imposed a manual review step on new OAuth developer accounts who requst access to ‘risky permissions’ like address books. It’s a beneficial step because it will help keep the trust of users ensuring that they will continue to want to share their data. However, it’s an extra step that all new customers must take to enable Gmail imports for their integration so we’ve provided specific instructions on how to navigate this new review process and continue to test while you wait.

  • Made our /events endpoint respond even faster.

  • Our widget causes security exceptions to be logged in the browser’s console. It doesn’t interfere with the widget behaviour but it generates noise for customers who monitor for that sort of thing. We addressed many of these isses and are still working to address more.


April, 2017

  • Improved Widget: our iCloud 2-step verification documentation for widget users.

  • For too long we’ve heard that it’s hard to make simple changes to the email format in the textarea because you needed to write your own javascript code. Now we’ve introducted some simple options to cover the common formatting cases, contactsDelimiter and contactsTemplate.

  • We have a new option to always display the CTA on the contact selection screen of the widget. By default we hide the CTA if there are no contacts selected and that’s not everyone’s bag of tea. So you can change it with alwaysShowCTA.

  • We resolved an vague and mysterious issue where sometimes our widget would fail to work for some customers.

  • We have reduced the reporting of inaccurate failures on our contact-importers page.

  • CSV uploads will parse a name field into a first and last name. In case you have a CSV file with the full name in one field.


March, 2017

  • Don’t like javascript alerts? We don’t blame you. Now we support a new new callback that let’s you decide how to let your users know when they’ve tried to select too many contacts. onSelectionLimitReached is for you.

  • Some address books have lots of nameless email addresses. Some have a few. For some reason we used to assume that these contacts were all named “Unknown” but then we asked around and it turns out that we don’t know anybody by that name. So now we use the email address instead of ass-u-me-ing.

  • There was a weird bug on mobile devices on select sites. An empty native select UI would display for contacts with 1 email address and it wouldn’t show up at all for contacts with multiple email addresses. Users may have felt like they had been fed crazy pills. They had not. It was a bug. And we squashed it.


February, 2017

  • We fixed our Microsoft integrations to properly retrieve the owner contact from Outlook.com and Office365. There’s at least three different ways that the owner contact is returned from these sources. Anyway, we found that for some of the various possible combinations of developer accounts, OAuth flows and Contacts APIs, the owner contact was not in one of the three usual places. So we’re now looking in a fourth place to make sure we get it every time.

  • People do crazy things. Sometimes, users of our widget will even upload VCard data on the CSV import page! Can you imagine? We now do the right thing in this nutty situation.

  • Our widget got some love too. The most interesting fix this month was to correct the display on mobile devices when there is more than one email for a contact. OK, that wasn’t so interesting but we’re proud of it anyway.

  • We took some preventative measures and moved a bunch of non-urgent reporting queries to the read-replica to keep access on the master database need-to-write-only. Everythings works more smoothly and our CPU graphs are oh so pretty.


January, 2017

  • Microsoft supports accessing Outlook.com and Office365 via a common API. Existing branding just works with the new APIs. However, you might want to update your Microsoft branding to take advantage of simpler permissions.

  • We found out that the new Outlook.com API supports most Outlook.com email accounts. Our system will still support the old version of the API until 100% of Outlook.com email accounts use the new API.

  • We were not closing the widget if the OAuth window was closed before the flow completed. This left the widget UI waiting endlessesly. We taught the widget to know better and now it packs itself up when this happens.

  • selectLimit was hard to change after the widget had already loaded. Now you can set this option to be a function that returns the value you want. This is handy if your users may import multiple times on a single page load.

  • We published our first case study. It’s about Gainfully who improved their product and their onboarding with our service.

  • We finally published this changelog page!


December, 2016

  • We updated the original widget include to serve the universal snippet bootstraping code. This won’t migrate customers to the universal snippet automatically, but it will make the migration even easier.


November, 2016

  • Oh, ho! We got a new homepage!

  • An obscure CSV upload bug got squashed; sometimes the proper delimiter was not being detected properly in very small CSV files.

  • WindowsLive now supports the newer Office.com API and will fail back to using the deprecated Live Contacts API. We will continue supporting the deprecated API while Microsoft migrates existing address books to Office.com support. There is no change required to your integration.

  • French language support for the new widget! Just use locale: 'fr'.

  • We buttoned down CSS isolation in the new widget. Your site styles are beautiful on your site. They don’t necessarily mix well into our widget UI.

  • Now displays the selection limit message as needed when a user clicks on “Select All”.


October, 2016

  • Environmental update: Reduce, Reuse, Recycle. This is an exciting improvement to the widget! When a user attempts to connect their address book a second time, we can now instantly display it. It is a big improvement to the UX with full transparency to the user. This is also a great tool for customers to reduce integration complexity, reduce the scope of PII and reduce the cost of their service. Wow!

  • Numerous issues were affecting IE10 and below because we were using ECMAScript 5 features that were not supported. We reined in our horses and now use IE friendly Javascript instead.
    Long contact names were breaking onto two lines which messed up the uniformity of the list of contacts. No longer!
    An empty address book was raising an exception when displaying no contacts. This is fixed too.

  • When you went to add a team member to your account, you saw the hideous old widget UI! Don’t worry, the soothing new widget is in place. We appologize for any eyes that were scratched out becuase of this oversight.


September, 2016

  • CSV Level-up: We added CORS support to our /c/csv endpoint to support our client libraray.
    CSV files with alternative separators used to require quotation characters around each field. We thought this was an unreasonable expectation when we found out about it breaking import for folks in non-North American markets.

  • We now show names in the widget, even when name is not specified in the list of fields to include.
    Our script behaved badly when it was included multiple times on a single page. Now it behaves properly if you accidentally on purpose, add it twice.
    If you made a typo in your credentials in the new widget you couldn’t submit the form again unless you closed the widget. Well it’s fixed now. Also we notify the user sooner when returning from the OAuth flow by throwing up the loading screen as soon as the widget code loads.

  • When the widget opens a popup window, it now opens in the centre of the browser window, right over top of the widget. Several customers have asked for this over the past year and now that we see how much better it works, we wish that we’d made time to change it sooner!

  • Fixed Web.de integration with the new widget

  • CORS! Any of our API endpoints will respond to an OPTIONS request in public.
    More CORS! The widget can now accept a file upload via CORS.

  • iCloud now supports users with 2-factor authentication enabled!

  • The widget now responds to dynamic HTML. If you add a link to the page, calling cloudsponge.init will find it and enable it to launch the widget!


August, 2016

  • The new widget offers standard translations for English, Brazilian Portuguese and Bulgarian.


July, 2016

  • The new widget is generally available! Read about the new features, why you should upgrade and some of the benefits.

  • QIP.ru source fix for changes in the source origin service
    Mail2World source fix for changes in the source origin service
    BOL source fix for changes in the source origin service
    Naver source fix for changes in the source origin service


June, 2016

  • New Widget Beta was released.

  • Fix Rediff not importing contacts for different servers Fix DOB in Mail.com the Mail.com date format change to DD.MM.YYYY


May, 2016

  • New Status Server structure, adding tests for all fields imported.

  • Fix QIP.Ru tests in status server

Try CloudSponge for free in your
testing environment

Get Started

Have a questions or prefer a guided tour?
Schedule a consultation with our Founder.