This article originally covered the retirement of the Twitter connector for Teams. On March 23, 2020, Microsoft announced (MC207399) that they are also retiring the Twitter connector for Office 365 Groups (referred to in the notification as the Twitter Connector feature from Outlook, Yammer and Skype Consumer). Microsoft says they will begin retiring the connector on March 24 and complete the process by March 31. It remains a mystery as to why Microsoft wishes to retire a component that functions perfectly well and works better than its suggested replacement.
Tweets Keep on Flowing Into Teams
The decision to retire the Teams Twitter connector announced
in Office 365 notification MC204830 on February 26 seems odd. It’s also a
retrograde step.
Apparently, Microsoft retired the connector on February 21 without telling anyone (but they do apologize for the inconvenience). As I write this note on March 8, the connector is still working in the channels where it’s configured in my tenant (Figure 1) and tweets continue to flow in as normal. It must take as long to retire features in Office 365 as it does to deploy them. Or I’m just lucky…
Figure 1: A Twitter connector configured for a Teams channel
Go to Power Automate to Flow Tweets into Teams
The announcement blithely says: “If your organization
enjoyed using the Twitter connector, we recommend using Microsoft Power
Automate to integrate Twitter with Microsoft Teams.” I’m not sure that the
folks who wrote that text understand the difference between injecting tweets
into Teams through the connector and using Power Automate (what used to be known
as Flow) for the task.
Like other connectors, the Twitter connector injects content from a network data source into a channel to inform users and potentially spark conversations in the channel (Figure 2). Each tweet is captured as a conversation and comes complete with a set of actionable buttons to like or retweet the tweet without leaving Teams or going to Twitter to view the conversation there.
Figure 2: Tweets injected as conversations into a Teams Channel
Power Automating Twitter
Following Microsoft’s advice, I went to Power Automate and attempted to create the functionality available through the Twitter connector. The “Post on Microsoft Teams when a new tweet matches the specified hashtag” template seemed like a good place to start, and I duly configured it to read from Twitter using my account and post to a target channel in Teams ((Figure 3).
Figure 3: Building a Flow to link Twitter to Teams
Alas, the results weren’t as good as those products by the Twitter connector (Figure 4). Everything is posted as me rather than the eponymous Twitter connector. The actionable buttons have disappeared and the user photos for those who post tweets are not captured. All in all, it’s a poorer experience.
Figure 4: How Power Automate creates tweets in a Teams channel
Odd Decision, Poor Results
I don’t know why Microsoft decided to retire the Twitter
connector for Teams. The connector is also used in Office 365 Groups and there’s
no mention of its retirement there. The connector is useful, does what you
expect, has added functionality over time, and the items created in channels look
good.
The decision is even harder to understand when viewed in the
light of a lesser replacement, but that might also be because the Power
Automate template that I selected wasn’t the best for the job. Perhaps the problem
is the way that the connector fetches information. Like most social media
companies, Twitter is tightening up its regulations about how processes access
data, and it could be that Twitter doesn’t like this connector. If so, that’s a
pity.
In my copious spare time, I need to do more research to see
if I can discover how to make Power Automate be nicer to Teams. Or maybe one of
the Power Automate gurus will come up with a nicer solution.
17 Replies to “Microsoft Retires Twitter Connector for Teams and Office 365 Groups”
We engineer ai at our firm, and as such, twitter has really helped in the Deep Learning aspect of supplying our programs with organic human responses. We have recently started using MSTeams in our interactive parlance. Would be great if somehow, while we engineer AI, twitter could be live flashed across all our screens at the same time.
I once tried to do a flow with Twitter to forward to email and got millions of emails and couldn’t stop that flow for a while. Yeah, really easy and comparable.
I tried the twitter ‘experience’ using flow. Even if I specified ‘from:@microsoftTeams’ in the Flow, to get updates and news from Microsoft, it forwarded any old tweet that mentions @MicrosoftTeams. not just those from that account. Definietly not a positive step.
I configured to follow “from:@MicrosoftTeams” and choose the team and channel, but nothing is posted. in my twitter app on my smartphone i got new tweets.
the flow is activated, but in the execution history are no entries.
is there anything else to do? i just connected my twitter account and created the flow and hoped it works.
Loading...
That’s pretty well what I did and it all worked.
Loading...
i just tested my flow, “getting a mail on new onedirve fileupload”. that works perfect…
Loading...
If finally figured out a way using Power Automate and Adaptive Cards. This must be a step backwards to solve a bigger implementation issue. But for this case it doesn’t make it any easier. The short version:
1. Create the adaptive card and “tokenize the fields” and then copy the JSON code template.
2. Create the power automate flow: When a new tweet is posted…
3. Create the next step: Post your own adaptive card as the Flow bot to a channel (Preview).
4. Paste in the JSON code template from above.
5. Now look for your tokens and replace them with the correct value from the dynamic content.
6. Save and test.
Here’s and example of the JSON template. Note the ppp_* tokens.
{"id":null,"mode":"button","open_style":"in_modal","currency_code":"EUR","currency_symbol":"\u20ac","currency_type":"decimal","blank_flag_url":"https:\/\/office365itpros.com\/wp-content\/plugins\/tip-jar-wp\/\/assets\/images\/flags\/blank.gif","flag_sprite_url":"https:\/\/office365itpros.com\/wp-content\/plugins\/tip-jar-wp\/\/assets\/images\/flags\/flags.png","default_amount":100,"top_media_type":"featured_image","featured_image_url":"https:\/\/office365itpros.com\/wp-content\/uploads\/2022\/11\/cover-141x200.jpg","featured_embed":"","header_media":null,"file_download_attachment_data":null,"recurring_options_enabled":true,"recurring_options":{"never":{"selected":true,"after_output":"One time only"},"weekly":{"selected":false,"after_output":"Every week"},"monthly":{"selected":false,"after_output":"Every month"},"yearly":{"selected":false,"after_output":"Every year"}},"strings":{"current_user_email":"","current_user_name":"","link_text":"Virtual Tip Jar","complete_payment_button_error_text":"Check info and try again","payment_verb":"Pay","payment_request_label":"Office 365 for IT Pros","form_has_an_error":"Please check and fix the errors above","general_server_error":"Something isn't working right at the moment. Please try again.","form_title":"Office 365 for IT Pros","form_subtitle":null,"currency_search_text":"Country or Currency here","other_payment_option":"Other payment option","manage_payments_button_text":"Manage your payments","thank_you_message":"Thank you for supporting the work of Office 365 for IT Pros!","payment_confirmation_title":"Office 365 for IT Pros","receipt_title":"Your Receipt","print_receipt":"Print Receipt","email_receipt":"Email Receipt","email_receipt_sending":"Sending receipt...","email_receipt_success":"Email receipt successfully sent","email_receipt_failed":"Email receipt failed to send. Please try again.","receipt_payee":"Paid to","receipt_statement_descriptor":"This will show up on your statement as","receipt_date":"Date","receipt_transaction_id":"Transaction ID","receipt_transaction_amount":"Amount","refund_payer":"Refund from","login":"Log in to manage your payments","manage_payments":"Manage Payments","transactions_title":"Your Transactions","transaction_title":"Transaction Receipt","transaction_period":"Plan Period","arrangements_title":"Your Plans","arrangement_title":"Manage Plan","arrangement_details":"Plan Details","arrangement_id_title":"Plan ID","arrangement_payment_method_title":"Payment Method","arrangement_amount_title":"Plan Amount","arrangement_renewal_title":"Next renewal date","arrangement_action_cancel":"Cancel Plan","arrangement_action_cant_cancel":"Cancelling is currently not available.","arrangement_action_cancel_double":"Are you sure you'd like to cancel?","arrangement_cancelling":"Cancelling Plan...","arrangement_cancelled":"Plan Cancelled","arrangement_failed_to_cancel":"Failed to cancel plan","back_to_plans":"\u2190 Back to Plans","update_payment_method_verb":"Update","sca_auth_description":"Your have a pending renewal payment which requires authorization.","sca_auth_verb":"Authorize renewal payment","sca_authing_verb":"Authorizing payment","sca_authed_verb":"Payment successfully authorized!","sca_auth_failed":"Unable to authorize! Please try again.","login_button_text":"Log in","login_form_has_an_error":"Please check and fix the errors above","uppercase_search":"Search","lowercase_search":"search","uppercase_page":"Page","lowercase_page":"page","uppercase_items":"Items","lowercase_items":"items","uppercase_per":"Per","lowercase_per":"per","uppercase_of":"Of","lowercase_of":"of","back":"Back to plans","zip_code_placeholder":"Zip\/Postal Code","download_file_button_text":"Download File","input_field_instructions":{"tip_amount":{"placeholder_text":"How much would you like to tip?","initial":{"instruction_type":"normal","instruction_message":"How much would you like to tip? Choose any currency."},"empty":{"instruction_type":"error","instruction_message":"How much would you like to tip? Choose any currency."},"invalid_curency":{"instruction_type":"error","instruction_message":"Please choose a valid currency."}},"recurring":{"placeholder_text":"Recurring","initial":{"instruction_type":"normal","instruction_message":"How often would you like to give this?"},"success":{"instruction_type":"success","instruction_message":"How often would you like to give this?"},"empty":{"instruction_type":"error","instruction_message":"How often would you like to give this?"}},"name":{"placeholder_text":"Name on Credit Card","initial":{"instruction_type":"normal","instruction_message":"Enter the name on your card."},"success":{"instruction_type":"success","instruction_message":"Enter the name on your card."},"empty":{"instruction_type":"error","instruction_message":"Please enter the name on your card."}},"privacy_policy":{"terms_title":"Terms and conditions","terms_body":null,"terms_show_text":"View Terms","terms_hide_text":"Hide Terms","initial":{"instruction_type":"normal","instruction_message":"I agree to the terms."},"unchecked":{"instruction_type":"error","instruction_message":"Please agree to the terms."},"checked":{"instruction_type":"success","instruction_message":"I agree to the terms."}},"email":{"placeholder_text":"Your email address","initial":{"instruction_type":"normal","instruction_message":"Enter your email address"},"success":{"instruction_type":"success","instruction_message":"Enter your email address"},"blank":{"instruction_type":"error","instruction_message":"Enter your email address"},"not_an_email_address":{"instruction_type":"error","instruction_message":"Make sure you have entered a valid email address"}},"note_with_tip":{"placeholder_text":"Your note here...","initial":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"empty":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"not_empty_initial":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"saving":{"instruction_type":"normal","instruction_message":"Saving note..."},"success":{"instruction_type":"success","instruction_message":"Note successfully saved!"},"error":{"instruction_type":"error","instruction_message":"Unable to save note note at this time. Please try again."}},"email_for_login_code":{"placeholder_text":"Your email address","initial":{"instruction_type":"normal","instruction_message":"Enter your email to log in."},"success":{"instruction_type":"success","instruction_message":"Enter your email to log in."},"blank":{"instruction_type":"error","instruction_message":"Enter your email to log in."},"empty":{"instruction_type":"error","instruction_message":"Enter your email to log in."}},"login_code":{"initial":{"instruction_type":"normal","instruction_message":"Check your email and enter the login code."},"success":{"instruction_type":"success","instruction_message":"Check your email and enter the login code."},"blank":{"instruction_type":"error","instruction_message":"Check your email and enter the login code."},"empty":{"instruction_type":"error","instruction_message":"Check your email and enter the login code."}},"stripe_all_in_one":{"initial":{"instruction_type":"normal","instruction_message":"Enter your credit card details here."},"empty":{"instruction_type":"error","instruction_message":"Enter your credit card details here."},"success":{"instruction_type":"normal","instruction_message":"Enter your credit card details here."},"invalid_number":{"instruction_type":"error","instruction_message":"The card number is not a valid credit card number."},"invalid_expiry_month":{"instruction_type":"error","instruction_message":"The card's expiration month is invalid."},"invalid_expiry_year":{"instruction_type":"error","instruction_message":"The card's expiration year is invalid."},"invalid_cvc":{"instruction_type":"error","instruction_message":"The card's security code is invalid."},"incorrect_number":{"instruction_type":"error","instruction_message":"The card number is incorrect."},"incomplete_number":{"instruction_type":"error","instruction_message":"The card number is incomplete."},"incomplete_cvc":{"instruction_type":"error","instruction_message":"The card's security code is incomplete."},"incomplete_expiry":{"instruction_type":"error","instruction_message":"The card's expiration date is incomplete."},"incomplete_zip":{"instruction_type":"error","instruction_message":"The card's zip code is incomplete."},"expired_card":{"instruction_type":"error","instruction_message":"The card has expired."},"incorrect_cvc":{"instruction_type":"error","instruction_message":"The card's security code is incorrect."},"incorrect_zip":{"instruction_type":"error","instruction_message":"The card's zip code failed validation."},"invalid_expiry_year_past":{"instruction_type":"error","instruction_message":"The card's expiration year is in the past"},"card_declined":{"instruction_type":"error","instruction_message":"The card was declined."},"missing":{"instruction_type":"error","instruction_message":"There is no card on a customer that is being charged."},"processing_error":{"instruction_type":"error","instruction_message":"An error occurred while processing the card."},"invalid_request_error":{"instruction_type":"error","instruction_message":"Unable to process this payment, please try again or use alternative method."},"invalid_sofort_country":{"instruction_type":"error","instruction_message":"The billing country is not accepted by SOFORT. Please try another country."}}}},"fetched_oembed_html":false}
We engineer ai at our firm, and as such, twitter has really helped in the Deep Learning aspect of supplying our programs with organic human responses. We have recently started using MSTeams in our interactive parlance. Would be great if somehow, while we engineer AI, twitter could be live flashed across all our screens at the same time.
I once tried to do a flow with Twitter to forward to email and got millions of emails and couldn’t stop that flow for a while. Yeah, really easy and comparable.
I tried the twitter ‘experience’ using flow. Even if I specified ‘from:@microsoftTeams’ in the Flow, to get updates and news from Microsoft, it forwarded any old tweet that mentions @MicrosoftTeams. not just those from that account. Definietly not a positive step.
i tried it too, but not tweets will come to the teams channel. did anyone get this working?
Did you know that as of today 4/9/20 (April 4th) Microsoft are still showing videos of Teams Twitter feed integration:
https://news.microsoft.com/office365forjournalists/learning-tools/edit-a-twitter-connector-in-microsoft-teams/
Wouldn’t surprise me at all. Things move slowly in large organizations
Maybe it’s because MS can charge for Power Automate. Sorry for the cynicism.
That’s been said before…
i tried it too, but not tweets will come to the teams channel. did anyone get this working?
You mean using Power Automate to create a flow to import tweets into a Teams channel? If so, yes. It works.
I configured to follow “from:@MicrosoftTeams” and choose the team and channel, but nothing is posted. in my twitter app on my smartphone i got new tweets.
the flow is activated, but in the execution history are no entries.
is there anything else to do? i just connected my twitter account and created the flow and hoped it works.
That’s pretty well what I did and it all worked.
i just tested my flow, “getting a mail on new onedirve fileupload”. that works perfect…
If finally figured out a way using Power Automate and Adaptive Cards. This must be a step backwards to solve a bigger implementation issue. But for this case it doesn’t make it any easier. The short version:
1. Create the adaptive card and “tokenize the fields” and then copy the JSON code template.
2. Create the power automate flow: When a new tweet is posted…
3. Create the next step: Post your own adaptive card as the Flow bot to a channel (Preview).
4. Paste in the JSON code template from above.
5. Now look for your tokens and replace them with the correct value from the dynamic content.
6. Save and test.
Here’s and example of the JSON template. Note the ppp_* tokens.
{
“$schema”: “http://adaptivecards.io/schemas/adaptive-card.json”,
“type”: “AdaptiveCard”,
“version”: “1.0”,
“body”: [
{
“type”: “TextBlock”,
“text”: “NAIFA Mentioned in Tweet”,
“weight”: “Bolder”,
“size”: “Medium”
},
{
“type”: “ColumnSet”,
“columns”: [
{
“type”: “Column”,
“width”: “auto”,
“items”: [
{
“type”: “Image”,
“url”: “ppp_tweet_profile_url”,
“size”: “Small”,
“style”: “Person”
}
]
},
{
“type”: “Column”,
“width”: “stretch”,
“items”: [
{
“type”: “TextBlock”,
“text”: “ppp_tweet_author”,
“weight”: “Bolder”,
“wrap”: true
},
{
“type”: “TextBlock”,
“spacing”: “None”,
“text”: “ppp_tweet_date”,
“isSubtle”: true,
“wrap”: true
}
]
}
]
},
{
“type”: “TextBlock”,
“text”: “ppp_tweet_content”,
“wrap”: true
},
{
“type”: “ActionSet”,
“actions”: [
{
“type”: “Action.OpenUrl”,
“title”: “View Tweet”,
“url”: “ppp_tweet_url”
}
]
}
]
}
Well done!