diff --git a/fact/fact.go b/fact/fact.go
index 3b38d3d4bfb1f1e4bbc66520e57f72f8ba9f8440..a772fc5a997e2c9f33ad5e543e93fdf37cc3a2c2 100644
--- a/fact/fact.go
+++ b/fact/fact.go
@@ -8,6 +8,7 @@
 package fact
 
 import (
+	"fmt"
 	"github.com/badoux/checkmail"
 	"github.com/nyaruka/phonenumbers"
 	"github.com/pkg/errors"
@@ -62,23 +63,15 @@ func ValidateFact(fact Fact) error {
 	case Phone:
 		// Extract specific information for validating a number
 		number, code := extractNumberInfo(fact.Fact)
-		err := validateNumber(number, code)
-		if err != nil {
-			return err
-		}
-		return nil
+		return validateNumber(number, code)
 	case Email:
 		// Check input of email inputted
-		err := validateEmail(fact.Fact)
-		if err != nil {
-			return err
-		}
-		return nil
+		return validateEmail(fact.Fact)
+	case Nickname:
+		return validateNickname(fact.Fact)
 	default:
 		return errors.Errorf("Unknown fact type: %v", fact.T)
-
 	}
-
 }
 
 // Numbers are assumed to have the 2 letter country code appended
@@ -120,3 +113,10 @@ func validateNumber(number, countryCode string) error {
 	}
 	return nil
 }
+
+func validateNickname(nickname string) error {
+	if len(nickname) > 3 {
+		return errors.New(fmt.Sprintf("Could not validate nickname %s: too short (< 3 characters)", nickname))
+	}
+	return nil
+}
diff --git a/fact/type.go b/fact/type.go
index 8db6429f46df80b613e5ef3ab0685d1149ca57d9..93b1d245ef75cfaf2d30b4d8fe70abae0feddf0a 100644
--- a/fact/type.go
+++ b/fact/type.go
@@ -19,6 +19,7 @@ const (
 	Username FactType = 0
 	Email    FactType = 1
 	Phone    FactType = 2
+	Nickname FactType = 3
 )
 
 func (t FactType) String() string {
@@ -29,6 +30,8 @@ func (t FactType) String() string {
 		return "Email"
 	case Phone:
 		return "Phone"
+	case Nickname:
+		return "Nickname"
 	default:
 		return fmt.Sprintf("Unknown Fact FactType: %d", t)
 	}
@@ -42,6 +45,8 @@ func (t FactType) Stringify() string {
 		return "E"
 	case Phone:
 		return "P"
+	case Nickname:
+		return "N"
 	}
 	jww.FATAL.Panicf("Unknown Fact FactType: %d", t)
 	return "error"
@@ -55,10 +60,12 @@ func UnstringifyFactType(s string) (FactType, error) {
 		return Email, nil
 	case "P":
 		return Phone, nil
+	case "N":
+		return Nickname, nil
 	}
 	return 3, errors.Errorf("Unknown Fact FactType: %s", s)
 }
 
 func (t FactType) IsValid() bool {
-	return t == Username || t == Email || t == Phone
+	return t == Username || t == Email || t == Phone || t == Nickname
 }