Created
February 24, 2013 20:39
-
-
Save benwaldie/5025527 to your computer and use it in GitHub Desktop.
TUAW > AppleScript > Generate OmniFocus Phone Followups from Contacts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- "using terms from" is necessary to let AppleScript know that these event handlers are terminology that belongs to the Contacts app. | |
using terms from application "Contacts" | |
-- This handler returns the Contacts property for which the plug-in should function. | |
on action property | |
return "phone" | |
end action property | |
-- This handler returns the name of the plug-in to be displayed in the Contacts property popup menu. | |
on action title | |
return "Follow Up with OmniFocus" | |
end action title | |
-- This handler basically tells the Contacts app that this plug-in should be enabled for a given person. | |
on should enable action with theProperty for thePerson | |
if theProperty is not equal to missing value then | |
return true | |
else | |
return false | |
end if | |
end should enable action | |
-- This handler runs when the plug-in is selected from the Contacts property popup menu. | |
on perform action with theProperty for thePerson | |
-- Target the contact from where the plug-in was triggered | |
tell application "Contacts" | |
tell thePerson | |
-- Determine whether the contact is a company, and if so, retrieve their company name. | |
if company = true then | |
set theName to organization | |
-- If the company name is not populated, then retrieve their name. | |
if theName = missing value then set theName to name | |
-- If the contact is not a company then retrieve their name. | |
else | |
set theName to name | |
end if | |
end tell | |
-- Retrieve the value of the property that triggered the plug-in. This should be the contact's phone number. | |
set thePhoneNumber to value of theProperty | |
end tell | |
-- Target OmniFocus' quick entry window | |
tell application "OmniFocus" | |
tell quick entry | |
-- Create a new followup task and note. | |
make new inbox task with properties {name:"Phone Call Followup with " & theName, note:"Phone Number: " & thePhoneNumber} | |
-- Expand the task to display the note. | |
set note expanded of every tree to true | |
-- Open the task | |
open | |
end tell | |
end tell | |
end perform action | |
end using terms from |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment