This project will allow you to create and send text messages to multiple recipients using the Google Assistant.
Here is the first working version. This actually works better than I thought it would.
1. Make a new contact with the name Friends. Use your cell phone number for the mobile number.
2. Say to the assistant..
3. The assistant will ask 'what's the message'?
4. Say...
5. The assistant will send yourself this text message and the Tasker profile will trigger because you received a text message with the word "Message" in it.
6. The Tasker task will check the individual names to see if there are any duplicates or if one of the names is a last name. If you have more than one 'Jim' in your contacts then Tasker will show you a menu and let you select the correct contact.
7. After the task checks to see if there are duplicate contacts it will send the text message to all the contacts.
There is a task called 'set text size mt' . This is so you can easily set the text size in the menu for your particular device.
Change the text size in the 'set' variable action within the task and run the task.
Profile: Receive My Text Mt (1001)
Event: Received Text [ Type:SMS Sender:
9787583657 Content:*message* ]
Enter: Send Text Mt (996)
A1: Destroy Scene [ Name:show contacts mt Continue Task After Error:On ]
A2: Create Scene [ Name:show contacts mt ]
A3: Variable Set [ Name:%split To:%evtprm3 Recurse Variables:Off Do Maths:Off Append:Off ]
A4: Variable Split [ Name:%split Splitter:message Delete Base:Off ]
A5: Variable Set [ Name:%test_name To:%split1 Recurse Variables:Off Do Maths:Off Append:Off ]
A6: Variable Split [ Name:%test_name Splitter: Delete Base:Off ]
<Start>
A7: Variable Add [ Name:%index Value:1 Wrap Around:0 ]
A8: Variable Set [ Name:%name_first To:%test_name(%index) Recurse Variables:Off Do Maths:Off Append:Off ]
A9: Array Clear [ Variable Array:%ctnames ]
A10: Query contacts [ Configuration:Search for *%name_first* Export false Timeout (Seconds):30 Continue Task After Error:On ]
A11: Variable Set [ Name:%full_name_first To:%ctnames() Recurse Variables:Off Do Maths:Off Append:Off ]
<Check for last name>
A12: If [ %ctnames(#) > 1 ]
A13: Variable Split [ Name:%full_name_first Splitter:, Delete Base:Off ]
A14: Variable Set [ Name:%index_plus_one To:%index+1 Recurse Variables:Off Do Maths:On Append:Off ]
A15: Goto [ Type:Action Label Number:1 Label:End of last name check ] If [ %index_plus_one > %test_name(#) ]
A16: Variable Set [ Name:%last_name To:%test_name(%index_plus_one) Recurse Variables:Off Do Maths:Off Append:Off ]
A17: Array Clear [ Variable Array:%ctnames ]
A18: Query contacts [ Configuration:Search for *%last_name* Export false Timeout (Seconds):30 ]
A19: Variable Set [ Name:%full_name_second To:%ctnames() Recurse Variables:Off Do Maths:Off Append:Off ]
A20: Variable Split [ Name:%full_name_second Splitter:, Delete Base:Off ]
A21: Variable Set [ Name:%name_match To:1 Recurse Variables:Off Do Maths:Off Append:Off ]
A22: For [ Variable:%name_a Items:%full_name_first() ]
A23: For [ Variable:%name_b Items:%full_name_second() ]
A24: If [ %name_a ~ %name_b ]
A25: Array Push [ Variable Array:%match Position:1 Value:%name_a Fill Spaces:Off ]
A26: End If
A27: End For
A28: End For
A29: If [ %match(#) = 1 ]
A30: Variable Add [ Name:%index Value:1 Wrap Around:0 ]
A31: Array Push [ Variable Array:%final_names Position:1 Value:%match1 Fill Spaces:Off ]
A32: Flash [ Text:Match
%final_names() Long:On ]
A33: Array Clear [ Variable Array:%match ]
A34: Goto [ Type:Action Label Number:1 Label:Bottom ]
A35: Stop [ With Error:Off Task: ]
A36: End If
A37: Array Clear [ Variable Array:%match ]
<End of last name check>
A38: End If
A39: If [ %full_name_first(#) > 1 ]
A40: Show Scene [ Name:show contacts mt Display As:Activity, No Bar Horizontal Position:100 Vertical Position:100 Animation:System Show Exit Button:On Show Over Keyguard:On Continue Task Immediately:Off ]
A41: Flash [ Text:%final_names(#) Long:On ]
A42: Stop [ With Error:Off Task: ] If [ %final_names(#) = 0 ]
A43: End If
<Bottom>
A44: Goto [ Type:Action Label Number:1 Label:Start ] If [ %index < %test_name(#) ]
A45: Flash [ Text:%final_names() Long:On ]
A46: Perform Task [ Name:Names To Numbers Mt Priority:%priority Parameter 1 (%par1):%final_names() Parameter 2 (%par2): Return Value Variable:%nums_to_send Stop:Off ]
A47: Flash [ Text:%nums_to_send Long:Off ]
A48: Send SMS [ Number:%nums_to_send Message:%split2 Store In Messaging App:On Continue Task After Error:On ]
Set Text Size Mt (1005)
A1: Variable Set [ Name:%Text_size To:5 Recurse Variables:Off Do Maths:Off Append:Off ]
Menu Tap Mt (1003)
A1: Array Push [ Variable Array:%final_names Position:1 Value:%tap_label Fill Spaces:Off ]
A2: Destroy Scene [ Name:show contacts mt ]
Names To Numbers Mt (1004)
A1: Variable Set [ Name:%names_to_split To:%par1 Recurse Variables:Off Do Maths:Off Append:Off ]
A2: Variable Split [ Name:%names_to_split Splitter:, Delete Base:Off ]
A3: For [ Variable:%cont_name Items:%names_to_split() ]
A4: Query contacts [ Configuration:Search for %cont_name Export false Timeout (Seconds):30 ]
A5: Array Push [ Variable Array:%cont_num Position:1 Value:%ctphones() Fill Spaces:Off ]
A6: End For
A7: Return [ Value:%cont_num() Stop:On ]