Skip to content

Instantly share code, notes, and snippets.

@benwaldie
Created February 24, 2013 20:39
Show Gist options
  • Save benwaldie/5025527 to your computer and use it in GitHub Desktop.
Save benwaldie/5025527 to your computer and use it in GitHub Desktop.
TUAW > AppleScript > Generate OmniFocus Phone Followups from Contacts
-- "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