Earn Alitalia Millemiglia miles – Bennet card

Bennet Alitalia Millemiglia(This post is part of the Alitalia Millemiglia travel hacking series)

Among the partners that allow to convert their loyalty points to Alitalia Millemiglia miles, there is Bennet, an Italian hypermarket chain with more that 6o points across northern Italy. It is possible to convert 1 Bennet point to 1 mile, till end of January 2017 (at least).

Taken alone, it already seems an interesting possibility to me, considering  Carta Bennet Club is activated for free and immediately upon requests, and gives 1 Bennet point for each 0.50 euros spent, after the fist 5 euros. Plus, there are several product that grant additional Bennet points.

Paying the bill using a Carta Alitalia Oro adds up more additional miles. For example, let’s consider a total expense cost of 50 euros: Bennet will credit 90 points (50 euros – 5 initial euros) * 2 points each euro, and the Carta Oro will entitle for additional 62 miles, 50 * 1,25 miles multiplier. A grand total of 152 miles, with 50 euros of shopping. Not so bad.

In addition, Bennet customer care told me that in the past they were special days when 1 Bennet points gave 2 or event 3 miles. Fingers crossed for a next occasion, but in the meantime I keep earning points.

Earn Alitalia Millemiglia miles – choose a credit card

(This post is part of the Alitalia Millemiglia travel hacking series)

It’s not a secret one of the first tools in the travel hacker toolbox is a credit card to earn loyalty points for each purchase made with it. Alitalia has a partnership with American Express to exchange Alitalia miles using AMEX Membership Reward Points. But if you’re not an AMEX customer yet, there are three interesting special cards to consider: Carta Alitalia Verde, Carta Alitalia Oro, Carta Alitalia Platino.

The main, common, advantages are earning bonus miles for card activation, plus miles for each purchase made with the card. Amount of the bonus miles and miles multiplier for purchases change with the level of the card. In additions, they offer access to exclusive Alitalia clubs (Ulisse and Freccia Alata), travel assurances, free class upgrades, bonus tickets and more. Conditions and offers change over time, so it’s important to check the current ones.

But I’ve discovered an interesting difference when requiring the card online, compared to requiring it offline at the dedicated American Express booths at airports: offline activation enables a way bigger welcome bonus. In fact, requiring a Carta Alitalia Oro at the airport entitles to 25000 miles bonus, instead of the 3000 miles for online activation: 3000 contextual to card activation (as for online), plus additional 22000 miles if at least 500 euros are spent during the first 3 months after card activation.

There are two drawbacks, compared to the current online offer (valid till Dec 18th 2016): 60 euros for the card first year fee, while online activation has 0 euros fee for the first year, and no 100 euros Amazon gift card, offered with online activation.

All considered, I’ve decided to activate a Carta Alitalia Oro at the airport (Milano Linate, in my case), spending 60 euros to receive those 25000 miles, rather than activating the card online spending 0 euros and receiving a 100 euros Amazon gift card. It seems a loss, but earning these additional 22000 miles would have been more difficult, and expensive, than that. And with 25000 miles is already possible to request a return ticket for a lot of European destinations.

To summarize, thanks the card I’ve now: 3000 welcome bonus miles, potential additional 22000 miles if I spent 500 euros during the next 3 months (easy, with my current expenses), free travel assurance, a companion ticket if I spend 15000 euros within the year (but this is too much for me), 3x qualifying miles for Exclusive Clubs access, direct access to Alitalia Club Ulisse, that enables 25% extra miles earning on flights booking, priority boarding, extra baggage free of charge, 2 Economic to Business class updates for European and Mediterranean, paid access to SkyTeam lounges and more, extended to all Skyteam partners. Card is connected to my bank account, no need to open a new one.

TripIt, Worldmate, Tripcase, Kayak Trips: my review of travel planner apps

I travel quite a lot, so having a service to track all my reservations, flights, hotels etc is very important for me. Luckly, there are several “travel companion” apps, so I’ve taken a look to some of them. I don’t consider myself a uber-user (yet), so this post tries to review them thru the lens of the features I consider useful for me now:

  • Must-have: the mobile app works offline
  • Must-have: import travel plans painlessly, just forwarding the confirmation email I receive
  • Must-have: generate a calendar feed that could be integrated in my Google Calendar
  • Must-have: edit, delete and add trip segments, even offline
  • Important: a great UX for the basic and most recurrent tasks, a pleasant UI in general
  • Nice-to-have: receive no my mobile device updates on flights gates, delays, luggage exitsm, etc
  • Nice-to-have: sharing travel plans with others not subscribed to the service

TL;DR: After a while with TripIt, I’m now using Kayak Trips, and I’m happy with it.

TripitTripIt

TripIt is an historical player in this field, I’ve used it for a couple of years, but I left the service after several failed imports of travel plans (Trenitalia, Easyjet) and wrong timezones for the imported ones. Recently the mobile app has been revamped, but the issues with importing data persists and the majority of the webapp has the same very old UI. On the other side, thanks to the Pro account, I’ve received punctual notification on flight schedules changes, gates etc even before the displays at the airport showed them, and I’m part of a team with all of my colleagues, so we’re alerted each other if we’re nearby and I can check their travel calendar. Full list of features can be found here.

WorldmateWorldmate

Worldmate was one of the first alternatives I tested. It has rarely failed to import my emails and it was the only service able to parse coach and seat number of train reservations. It met all my requirements in the free version, except the calendar option, available only for premium accounts. It also offers a connection feature with LinkedIn, alerting when crossing paths with your contacts. I was not impressed by the web and mobile UI and it’s impossible to split / merge trips. Another cool feature offered is an API for parsing travel itinerary information from confirmation emails. They were acquired by Carlson Wagonlit family in 2012 and full features list is here.

TripcaseTripcase

Tripcase uses Worldmate API to parse travel itinerary, but from tests I’ve done sending the same confirmation emails to both services, Tripcase adds less detail to the final trip itineraries: for example, train coach and seat are missing. I don’t know if the API returns less info or Tripcase discards some of them. From a UX / UI point of view, it is much better that Worldmate. The only issues I’ve found so far is the creation of separate trips for confirmation emails that refers to same dates and destinations, for example a flight and an hotel, even if a specific option should prevent that. They could be merged later on web app, but it’s annoying. Calendar appointments are created, but only for the trip elements, while I generally prefer to also have an all-day event for the whole length of the trip. One cool feature app offers is reminders for missing hotel reservations in the itinerary, while full list is here.

Kayak TripsKayak Trips

Kayak Trips: Kayak has always succeeded to import confirmation emails for hotel, flights or train I’ve booked in Europe and USA, and it mets all my requirements with satisfaction. Another unique factor to consider is the Kayak business model: Kayak is a travel search company and the app is a commodity to drive more bookings, so there is no premium version and the app could be maintained even if it’s not profitable by itself. Flip side is the total lack of integration with the additional travel services the other reviews apps offer, like LoungeBuddy, Mozio and many more.

Google TripsGoogle Trips

Google Trips: latest comer to the party, the UX/UI of the app is great, everything is create automagically from inbox emails and there is a strong support for offline features, well integrated with other Google properties. Unfortunately, a Gmail account is required and there is no way to manually add/modify a segment of a trip, or choose a different splitting for them.

 

Disclaimer: there are lot of more features these apps have (booking hotels / flights / cars, integration with third party services, tracking of loyalty program points and much more), and the presence or lack of some of them could greatly influence personal choices.

More Telegram bot features using IFTTT

Telegram bot with IFTTT recipesNow that I created a Telegram bot fed by IFTTT, I can add new features using the available channels. A message with the Milan weather condition every morning, for example, or a cool 500px picture during the day to take a break and enjoy the beauty? Possibilities are limited only by IFTTT skills.

The logic is easy: every recipe has a different trigger (the “this” past), and the action is always the same: use the Maker channel to send a POST HTTP call to the Telegram bot, formatting the message with the specific information I want to display. To create the Telegram bot, please look to my previous post.

Weather

Telegram bot weather

The trigger to activate in the Weather channel is “Today’s weather report”, setting the time of the day the report has to be sent. I set 7.00 am because I prepare last minute, but it’s also possible to select “Tomorrow’s weather report” and receive the message the evening for the ones that want to plan what to dress the next day in advance. There are plenty of other information available in the triggers, like sunrise and sunset time, change of conditions / temperature and much more. The city is selected when the channel in connected with the IFTTT account.

The action is the “Make a web request” is the Maker channel, using the following parameters (XXtokenXX and the chat_id have to be changed with the appropriate values):

  • URL: https://api.telegram.org/botXXtokenXX/sendMessage
  • Method: POST
  • Content type: application/json
  • Body: {“chat_id”:”-235327410″, “text”:”Good morning. In Milan {{TodaysCondition}}, max {{HighTempCelsius}} min {{LowTempCelsius}}”}

Cool 500px pictures

Telegram bot with picture

The trigger to activate in the 500px channel is “New Editors’ Choice photo”, selecting one of the available categories, or any.

The action is the “Make a web request” is the Maker channel, using the following parameters:

  • URL: https://api.telegram.org/botXXtokenXX/sendMessage
  • Method: POST
  • Content type: application/json
  • Body: {“chat_id”:”-235327410″, “text”:”Breath and enjoy the beauty: [<<<{{Title}}>>>]({{SourceUrl}})”, “parse_mode”:”markdown”, “disable_web_page_preview”: “false”}

In order to have a preview of the image embedded in the bot message, I used parse_mode set to markdown and i set disable_web_page_preview to false, even if it’s the default setting. Of course the text value is written using Markdown syntax. For more information on the available parameters, the official doc is a good reference. Again, XXtokenXX and the chat_id have to be changed with the appropriate values.

Write a Telegram bot using IFTTT recipies

I want a simple and automated way to notify my wife I’m at the train station of our city, commuting to home. I know there are plenty of apps for that, but I already have an ongoing Telegram chat with her, so I created a Telegram bot that sends a message in that chat every time I’m in a particular area. How? Here the list of the different pieces to put in place:

  • Create a Telegram group chat
  • Create a Telegram bot
  • Enable bot to send messages to the group chat
  • Write an IFTTT recipe that activates the bot every time I (my phone) enter in a particular location

Just a side note: The same approach works also for other messaging apps that support bot integration and activation via webhooks. Even better for Slack, that has its own channel on IFTTT, so no need to deal with webhooks.

Create the Telegram group chat

Nothing to say here, if you already have Telegram, you know how to create a group chat between the people you want to notify. Even if the conversation is between me and my wife only, I created a groups chat and not direct message because also the bot needs to be included.

Create the Telegram bot

I followed the official documentation to create a Telegram bot, asking to BotFather for a new one, with name Lurch (oh yes, the name of my digital butler since my very first project of this kind during high school years), username YellowBot.

20160804-createbot

As you can see, BotFather returned a token to use while calling the Bot API. I also set Lurch profile picture using /setuserpic command.

I finally added the newly created YellowBot to the previously created group chat.

Enable bot to send messages to the group chat

Telegram exposes a convenient webhook for posting a message thru a bot: the sendmessage API. It’s as simple as making an HTTP call, with some parameters in the payload. Two of them are required, the chat_id and the message.

chat_id: as per documentation, “Unique identifier for the target chat, or username of the target channel (in the format @channelusername)“. So, the id of the group chat previously created. To obtain it, the getUpdates API can be used, using the following syntax (it’s important to change XXtokenXX with the token previously obtained by BotFather):

curl https://api.telegram.org/botXXtokenXX/getUpdates

Unfortunately, this call returns an empty json, because there are no messages for the bot so far:

{"ok":true,"result":[]}

Writing message in the group chat where the bot has been added doesn’t help, because of the privacy-mode activated by default for all the bots.  As per documentation, bots will receive only messages that start with a slash ‘/’ , so I wrote a test commmand like “/test”, but / + any combination of letters can be used. This time, the same call to getUpdates returns:

{  
  "ok":true,
  "result":[  
    {  
      "update_id":43841716,
      "message":{  
        "message_id":122,
        "from":{  
          "id":000000000,
          "first_name":"Alfredo",
          "username":"rainbowbreeze"
        },
        "chat":{  
          "id":-235327410,
          "title":"YellowFamily chat",
          "type":"group"
        },
        ....
}

So, the group chat_id is -235327410. As per documentation, a negative id refers to group chat, positive to private chat with a user.

At this point, it is already possible to send a bot message in the group chat, using a simple CURL command. I used a POST request and a application/json as content-type among the different ones available, so I formatted the payload accordingly:

curl -X POST -H "Content-Type: application/json" -d '{"chat_id":"-235327410", "text":"Hello world!"}' https://api.telegram.org/botXXtokenXX/sendMessage

obtaining a reply similar to

{  
  "ok":true,
  "result":{  
    "message_id":177,
    "from": ....

The “Hello world!” message should also appear on the group chat, with the bot as sender.

IFTTT integration to send messages using the bot

IFTTT has one channel to trigger an action when the device is in a specific location (in my case, entering the train station) for Android and for iOS, but hasn’t a dedicated channel for Telegram (yet). Luckily, the Maker channel comes in handy: what it does is to make an HTTP call to an URL specifying the kind of call (GET, POST, UPDATE etc), the content type and the message payload (if any). The exact information required to activate the Telegram bot just created.

So, first step is to create a new recipe with the Android Location channel as “this” part. Once downloaded the IF app for Android on the phone and connected the channel, I selected the “You enter an area” trigger, selected the area of my interest and created the trigger

IFTTT location trigger

For the “that” part, I selected the Maker channel and “Make a web request” as trigger, using the following parameters:
URL: https://api.telegram.org/botXXtokenXX/sendMessage
Method: POST
Content type: application/json
Body: {“chat_id”:”-235327410″, “text”:”It seems Alfredo is in at Pavia train station”}

IFTTT Maker channelThat’s all. Once I’m nearby the train station, the bot send a message in the group chat. Obviously, there are things to improve. For example, the recipe fires every time I’m around the location, even if I’m there for a walk. It would be great to activate the recipe only for a particular time interval, but IFTTT doesn’t offer this option. But the recipe could be manually disabled.

Following the same method, there are plenty of stuff the bot can write in the chat, using the many IFTTT channels. Fantasy is the limit :)

Reddit as source for a COPE strategy, and IFTTT for all the rest

IFTTT Reddit to SlackAfter the first CLSxItaly, we added to the Slack a new channel to share interesting community management resources, like blogposts etc. It was good, because allowed us to continue the discussion with interesting ideas, mainly thanks to the tireless work of Alessio.

But I felt we were missing something, like a broader sense of sharing with other community managers outside the Slack, that could be interested to same links too. Or an easy way to browse and search thru the different resources posted. Or a way to maintain the discussion visually connected with the different links posted, instead of a long stream of messages.

I remembered that, in the old days, a dedicated service was created for link sharing and discussion, a service that has survived to the present days: Reddit. Don’t know about it? You should! Reddit looked to me the perfect place to post our resources, and turns out that a subreddit dedicated to community management already exists: r/CommunityManager.

Great! But neither I could ask to all the CLSxItaly member to migrate from Slack to Reddit, nor force a double post on Slack and Reddit. Thankfully, IFTTT came again in handy, with channels for Reddit and Slack, plus others, so I was able to quickly implement a C.O.P.E. (Create Once, Publish Everywhere) strategy, using Reddit as source and then publishing the same content on the Slack content-sharing channel, Twitter and, potentially, many more. It also satisfy different kind of users with different kind of social feeds or tools habits (I, for example, still prefer RSS feeds aggregated by a reader).

I created a new IFTTT recipe using Reddit channel for the “this” part and selecting the “Any new post in subreddit” trigger, using “CommunityManager” as parameter.

IFTTT Reddit channel

For the “then” part, instead, I used the Slack channel with the “Post to channel” action.

IFTTT Slack channel

Too easy. Now, every time someone post a link in the r/CommunityManager, the Slack channel get a message (with a delay of some minutes). Is not that cool and complete as posting a link on Slack (with image, content snippet etc), but it works well.

Finally, I did another recipe to post the same link on Twitter, to be really COPE ;)

Extending the GDG Community Summit with CLSx steroids

CLSxItaly communitiesSummer is coming, so it’s time to plan a new round of national community summits for Google Developer Group communities before enjoying a long series of mojitos on the beach. Given the main objective of these summits, offer a dedicated learning/sharing moment on community management topics to the GDGs, this year we (my team and I) come up with the idea to use the summit to extend this moment to all the tech communities in the ecosystem. And because we’re already familiar with CLSx events, we decided to organise a CLSx as activity for the first day of the summit, and leave the second day focused on GDGs only, as it has always been.

Why? Because GDGs are still at the center of our hearth, but we think we can do more for the entire community scene, so an open event for everyone interested in community management topics.

Because we’ve seen that the true potential of the ecosystem can be unleashed if the communities collaborate each other: sharing speakers, best practices and other resources, mutually empowering, drafting a common mindset for the city / area. And all these process can start only if the different community leads in the same area know each other. Clearly, this is not true for all the cities in the same way, but it’s a good starting point.

Finally, because we would also add our contribution to tackle the gender diversity issue in tech ecosystem, and working only with a set of tech communities doesn’t allow to have holistic approach this kind of issue requires.

Where? In the countries we support where the GDG communities are already thinking at country level instead of a single chapter level, so used to learn by sharing and ready to mix with a new crowds without losing their own identities. We’ve selected Italy (Rome), Spain (Madrid) and France (Paris), among the countries we support. We’re instead going for a “traditional” community summit in the other countries (Netherlands, Nordics, Greece).

Stay tuned :)