×

Plug-In: Add Call Task

This plug-in will create a new task with a TAP|CLICK call link in its notes. Optionally, you can tag the task with the default Apple phone emoji tag: ☎️

On iOS devices the keypad will be automatically used for the phone number input.

add-call-task

Return to: OmniFocus Plug-In Collection

Add Call Task
 

/*{ "type": "action", "targets": ["omnifocus"], "author": "Otto Automator", "identifier": "com.omni-automation.of-add-call-task", "version": "1.5", "description": "This plug-in will create a new task with a call link in its notes. Option to assign tag to new task.", "label": "Add Call Task", "shortLabel": "Call Task" }*/ (() => { var action = new PlugIn.Action(function(selection, sender){ // action code // selection options: tasks, projects, folders, tags, allObjects var titleEmoji = "☎️" var taskTitlePrefix = titleEmoji + "︎ Call " var textInputField01 = new Form.Field.String( "taskName", "Task Title", taskTitlePrefix ) var textInputField02 = new Form.Field.String( "callNumber", "[0 to 9, +, *, #]", null ) if (Device.current.iOS && !Device.current.iPad){ textInputField02.keyboardType = KeyboardType.PhonePad } var textInputField03 = new Form.Field.String( "tagName", "Tag task with:", null ) var inputForm = new Form() inputForm.addField(textInputField01) inputForm.addField(textInputField02) inputForm.addField(textInputField03) var formPrompt = "Task title and phone number:" if (Device.current.iOS && !Device.current.iPad){ var formPrompt = "Title & Number:" } var buttonTitle = "Continue" var formPromise = inputForm.show(formPrompt,buttonTitle) inputForm.validate = function(formObject){ var taskName = formObject.values['taskName'] if (!taskName) {return false} var inputText = formObject.values['callNumber'] if (!inputText) {return false} var isCall = /^[0-9,*,#,+]+$/i.test(inputText) return ((isCall && inputText.length >= 7)?true:false) } formPromise.then(function(formObject){ var taskName = formObject.values['taskName'] var textValue = formObject.values['callNumber'] var tagName = formObject.values['tagName'] if(tagName){ var result = flattenedTags.filter((tag) => tag.name === tagName)[0] var tagObj = ((result) ? result : new Tag(tagName)) } var callURLStr = "tel://" + textValue var url = URL.fromString(callURLStr) var task = new Task(taskName) task.note = url.string if(tagName){task.addTag(tagObj)} var id = task.id.primaryKey URL.fromString("omnifocus:///task/" + id).open() }) }); action.validate = function(selection, sender){ // validation code // selection options: tasks, projects, folders, tags, allObjects return true }; return action; })();