Pushing data to an analytics API
If you think that those try/catch blocks look too verbose, then you can create utility method like:

def logExceptions[R](body: =&gt; R): R =
  try { body }
  catch {
    case e: Exception =&gt; log.error(e.toString)
  }


Then rewrite your code like:

def buyLinkAnalytics(notif: Notification, reqInfo: RequestInfo) {
  logExceptions {
    logActivity(buy_link_requested, Some(LoggedInAccount(AccountId(notif.emails.get.to._id))), notif.productId.get._id.toString, None, reqInfo)
  }
}

def productShareAnalytics(notif:Notification, reqInfo:RequestInfo) {
  logExceptions {
    logActivity(product_shared, Some(LoggedInAccount(AccountId(notif.emails.get.to._id))), notif.productId.get._id.toString, None, reqInfo)
  }
}

...