     missingAnything
 
 
-  pagerDutyUserId = (msg, users) ->
+  withPagerDutyUser = (msg, cb) ->
+
     email  = msg.message.user.pagerdutyEmail || msg.message.user.email_address
     unless email
       msg.send "Sorry, I can't figure out your email address :( Can you tell me with `#{robot.name} pager me as you@yourdomain.com`?"
       return
 
-    user = users[email]
-
-    unless user
-      msg.send "Sorry, I couldn't find a PagerDuty user for #{email}. Double check you have a user, and that I know your PagerDuty email with `#{robot.name} pager me as you@yourdomain.com`"
-      return
-
-    users[email].id
+    pagerDutyGet msg, "/users", {query: email}, (json) ->
+      if json.users.length isnt 1
+        msg.send "Sorry, I expected to get 1 user back for #{email}, but got #{json.users.length} :sweat:"
+        return
+
+      cb(json.users[0])
+
 
   pagerDutyGet = (msg, url, query, cb) ->
     if missingEnvironmentForApi(msg)

      incident.assigned_to_user.email
    else if incident.resolved_by_user
      incident.resolved_by_user.email
    else 
      '(???)'

  generateIncidentString = (incident, hookType) ->

    incidentId = msg.match[3]
    content = msg.match[4]

    withPagerDutyUser msg, (user) ->
      userId = user.id
      return unless userId

      data =
