This is the structure used to represent one Form in a Process.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
{
  "Result": {
    "Process":"<Process Name>",
    "ProcessID":<Process ID>
    "Form": {
      "Number":"<Form Number>",
      "Title":"<Form Title>"// Since RPM21
      "FormID":<Form ID>,
      "AlternateID": <string>, // Since RPM24, optional user-provided UUID (36 characters) 
      "Owner":"<Owner Name>",
      "Status":"<Form Status>",
      "StatusDate""<string>"// Since RPM 26
      "ApprovalResult":"<Form's pprovalResult>",
      "Archived":<bool>,
      "Started":"<Date Started>",
      "StartedBy":"<string>"// Since RPM 26
      "Modified":"<Date of Last Modified>",
      "ModifiedBy":"<string>"// Since RPM 26
      "Fields": [
        {
          "Field":"<Field Name>",
          "Value":"<Value for Field>",
          "Values": [ // Only on multi-select supplier reference fields (Since RPM24)
                  {
                      "ID": <int>,
                      "ValueUid": <string>,
                      "Order": <int>,
                      "Value": <string>
                  },
                  ... <More Values>
          ]
        },
        {
          "Field":"<Field Name>",
          "Value":"<Value for Field>",
        },
        ... <More Field Definitions>
      ],
      "Files" : [
        {
          "Added": <date>,
          "AddedBy": <string>,
          "FileID": <int>,
          "AlternateID": <string>, // Since RPM24, client-generated UUID
          "FileName": <string>,
          "Folder": <string>,
          "FolderID": <int>,
          "Size": <double>,
          "StaffOnly": <bool>
        },
        <... More Files>
      ]
      "Sets": [ 
        {
          "FormID":<Form ID>,
          "Fields": [
            {
              "Field":"<Repeating Field1 Name>",
              "Value":"<Value for Repeating Field1>",
            },
            {
              "Field":"<Repeating Field2 Name>",
              "Value":"<Value for Repeating Field2>",
            },
            ... <More Repeating Fields>
          ]
        },
        {
          "FormID":<Value for FormID>,
          "Fields": [
            {
              "Field":"<Field Name>",
              "Value":"<Value for Field>"
            },
            {
              "Field":"<Field Name>",
              "Value":"<Value for Field>",
            },
            ... <More Repeating Fields>
          ]
        },
        ... <More Repeating Field Sets>
      ],
      "Participants": [
        {
          "Name":"<Participant1 Name>",
          "ParticipantID": <Participant1 ID (int)>,
          "UserID": <System wide user ID (int)>,
          "Role":"<Participant1 Role>",
          "Read":"<Participant1 Last form read date>",
        }
      ],
      "Actions": [
        {
            "ActionID": <int>,
            "Action": <string>,
            "Assignee": <string>,
            "AddedBy": <string>,
            "Due": <string>,
            "Priority": <int>,
            "OriginalDate": <string>,
            "Done": <bool>
        },
        <... More Actions>
      ],
      "Notes": [
        {
          "Note": <string>,
          "Added": <string>,
          "By": <string>
        },
        <... More Notes>
      ],
      "NotesForStaff": [
        {
          "Note": <string>,
          "Added": <string>,
          "By": <string>
        },
        <... More Notes>
      ],
      "Signatures": [ // Since RPM19
        {
          "FAFilesID": <int>,
          "AlternateID": <string>, // Since RPM24, client-generated UUID
          "Name": <string>,
          "Date": <string: iso formatted date>,
          "Stage": <string>,
          "Company": <string>
        },
        <... More Signatures>
      ]
    }
  }
}



Field Value Formatting

Form fields are one of the main aspects of RPM’s custom forms and the way they are represented are very simple (we have written a guide on how to format field values inside table fields)

Outside table fields they are simple objects with 2 keys “Name” and “Value”:

1
2
3
4
{
     "Field": <string>,
     "Value": <string>
}

Reference fields get an extra ID key with the underlying ID for the selected value:

1
2
3
4
5
{
     "Field": <string>,
     "Value": <string>,
     "ID": <int>
}

The Value is always returned as a string:

  • text
  • date » ISO formatted, e.g. “2017-09-11”, “2017-09-11 14:14:00 -06:00” (no TZ information should be sent or returned).
    Note: as of RPM27 nested date/time field return their value in a 12 hour format instead of 24h so the previous exapmle will be 2017-09-11 2:14:00 PM
  • location » lat/long format “51.03241,-114.036577”
  • list » selected option
  • multi-select list » “option 1, options 3”
  • location list » the description of the selected option (not the lat/long value)
  • yes/no » “0” = No, “1” = Yes, “” – No selection
  • measurement » include units, e.g. “123 cm”
  • duration » in seconds without units, e.g “60” for 1 minute
  • money » a decimal number without currency symbol, e.g “123.4567”
  • decimal » “123.4567”
  • percent » with % symbol, e.g. “123.4567%”
  • quantity » “123”
  • yes/no list » json with options, selections, etc: {“Values”:[{“OptionID”:5288, “Value”:2, “Comment”:”A comment”} … ]}”