Assemble Developer Portal

Role Profiles (3.0)

Download OpenAPI specification:Download

This documentation describes how to retrieve and update information relating to your organisations role profiles.

Role profiles are at the heart of users on Assemble. They determine how users are recruited, what functionalities they have access to and what information is stored against them.

Any user in the system, regardless of whether or not they are a volunteer or a non-volunteer, must have at least one role assigned to their account.

User and role profiles relationship

As can be seen in the above diagram, a role determines the following for a user:

  • Whether or not they are a volunteer or a non-volunteer
  • Custom fields/attributes
  • Permissions they can have (functionality/supervisory)
  • Skills/interests that can be assigned
  • Recruitment workflow along with role specific application questions
  • Access to restricted documents in The Hub

A role profile will also be the building blocks for an opportunity to be published to recruit volunteers for your organisation.

When a role is assigned to a user either through recruitment or via direct assignment, they will have a start date and if fixed term, an end date. They will also be assigned to a team/hierarchy within your organisation that determines where they "sit" within the organisation for that role. Additionally, a user can have multiple roles, based in different teams.

Please see our support centre to find out more about role profiles and how they work within Assemble.

Role Profiles

Role profile listing

Retrieve a paginated list of role profiles

Authorizations:
JWT
query Parameters
type
string
Enum: "volunteer" "non-volunteer"
Example: type=volunteer

Filter by role profile type

assignable
boolean

Filter by assignable role profiles only

view
string
Value: "all"

Filter by a view

families
string
Example: families=54,32,56

Filter by role family ids (comma separated list)

permission_groups
string
Example: permission_groups=12,65,48,66

Filter by permission group ids (comma separated list)

status
string
Enum: "active" "inactive"
Example: status=active

Filter by status

recruitable
boolean

Filter by recruitable role profiles

approved
boolean

Filter by approved role profiles

q
string

Search by role internal name and role name

o
string
Default: "d"
Enum: "a" "d"
Example: o=a

Order the results

s
string
Default: "id"
Enum: "not_approved" "id" "name" "permission_group" "family" "recruitment_category" "status"

Sort the results

Responses

Response Schema: application/json
Array of objects (RoleProfile)
object

Response samples

Content type
application/json
{
  • "data": [
    • {
      • "id": 241421,
      • "name": "Shop volunteer",
      • "display_name": "Shop volunteer",
      • "type": "volunteer",
      • "role_base": "Event",
      • "approved": true,
      • "short_advert": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Enim tortor at auctor urna.",
      • "long_advert": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Enim tortor at auctor urna. Convallis aenean et tortor at risus. Vitae proin sagittis nisl rhoncus mattis. Scelerisque eleifend donec pretium vulputate sapien nec sagittis. Orci a scelerisque purus semper eget duis at tellus at.",
      • "disclaimer": "Enim tortor at auctor urna.",
      • "volunteer_manager": "Community manager",
      • "why_we_want_you": "Scelerisque eleifend donec pretium vulputate sapien nec sagittis. Orci a scelerisque purus semper eget duis at tellus at.",
      • "status": "active",
      • "editable": true,
      • "recruitable": true,
      • "minimum_age": 16,
      • "pdf_url": "http://example.com",
      • "risk_assessment_url": "http://example.com",
      • "minimum_address_history": "2",
      • "receives_team_notifications": true,
      • "family": {
        • "id": 21421,
        • "name": "Volunteer"
        },
      • "recruitment_category": {
        • "id": 12412,
        • "name": "Full",
        • "stages": [
          • {
            • "id": 21412,
            • "name": "Application",
            • "display_name": "Applied",
            • "actions": [
              • {
                • "id": 421421,
                • "name": "string",
                • "action_stage_id": 0,
                • "settings": { }
                }
              ]
            }
          ]
        },
      • "images": [],
      • "tasks": [
        • {
          • "id": 532523,
          • "task": "A pellentesque sit amet porttitor eget."
          }
        ],
      • "skills": [
        • {
          • "id": 543,
          • "skill": "Senectus et netus et malesuada fames ac turpis egestas maecenas."
          }
        ],
      • "benefits": [
        • {
          • "id": 5435,
          • "benefit": "Accumsan lacus vel facilisis volutpat est velit egestas dui id."
          }
        ],
      • "base": {
        • "id": 64,
        • "name": "Community",
        • "icon": "fa fa-users",
        • "order_id": 1
        }
      }
    ],
  • "meta": {
    • "pagination": {
      • "total": "string",
      • "count": "string",
      • "per_page": "string",
      • "current_page": "string",
      • "total_pages": "string",
      • "links": {
        • "next": "string",
        • "previous": "string"
        }
      }
    }
}

Create a new role profile

Create a new role profile

Authorizations:
JWT
Request Body schema: application/json
id
integer

The unique ID of the Role Profile record

name
string

Name of the role profile

type
string
Enum: "volunteer" "non-volunteer" "system"

Role profile type

approved
boolean

Determine if this role profile has been approved

short_advert
string

Short advert text

long_advert
string

Long advert text

disclaimer
string

Role disclaimer text

volunteer_manager
string

Role manager

why_we_want_you
string

Why we want you text

status
string
Enum: "active" "inactive" "draft"

Role profile status

editable
boolean

Determine if this role is editable

recruitable
boolean

Determine if this role is recruitable

minimum_age
integer

The role profiles minimum age

pdf_url
string <uri>

PDF URL

risk_assessment_url
string <uri>

Risk assessment PDF URL

minimum_address_history
string

The minimum address history requirement

receives_team_notifications
boolean

Determine if this role receives team notifications

object (RoleFamily)
object (RecruitmentCategory)
Array of objects (Image)
Array of objects (RoleTask)
Array of objects (RoleSkill)
Array of objects (RoleBenefit)
object (RoleBase)

Responses

Response Schema: application/json
object (RoleProfile)

Detailed role profile information

Request samples

Content type
application/json
{
  • "id": 241421,
  • "name": "Shop volunteer",
  • "type": "volunteer",
  • "approved": true,
  • "short_advert": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Enim tortor at auctor urna.",
  • "long_advert": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Enim tortor at auctor urna. Convallis aenean et tortor at risus. Vitae proin sagittis nisl rhoncus mattis. Scelerisque eleifend donec pretium vulputate sapien nec sagittis. Orci a scelerisque purus semper eget duis at tellus at.",
  • "disclaimer": "Enim tortor at auctor urna.",
  • "volunteer_manager": "Community manager",
  • "why_we_want_you": "Scelerisque eleifend donec pretium vulputate sapien nec sagittis. Orci a scelerisque purus semper eget duis at tellus at.",
  • "status": "active",
  • "editable": true,
  • "recruitable": true,
  • "minimum_age": 16,
  • "pdf_url": "http://example.com",
  • "risk_assessment_url": "http://example.com",
  • "minimum_address_history": "2",
  • "receives_team_notifications": true,
  • "family": {
    • "id": 21421,
    • "name": "Volunteer"
    },
  • "recruitment_category": {
    • "id": 12412,
    • "name": "Full",
    • "stages": [
      • {
        • "id": 21412,
        • "name": "Application",
        • "display_name": "Applied",
        • "actions": [
          • {
            • "id": 421421,
            • "name": "string",
            • "action_stage_id": 0,
            • "settings": { }
            }
          ]
        }
      ]
    },
  • "images": [
    • {
      • "id": 45645,
      • "thumbnails": { }
      }
    ],
  • "tasks": [
    • {
      • "id": 532523,
      • "task": "A pellentesque sit amet porttitor eget."
      }
    ],
  • "skills": [
    • {
      • "id": 543,
      • "skill": "Senectus et netus et malesuada fames ac turpis egestas maecenas."
      }
    ],
  • "benefits": [
    • {
      • "id": 5435,
      • "benefit": "Accumsan lacus vel facilisis volutpat est velit egestas dui id."
      }
    ],
  • "base": {
    • "id": 64,
    • "name": "Community",
    • "icon": "fa fa-users",
    • "order_id": 1
    }
}

Response samples

Content type
application/json
{
  • "data": {
    • "id": 241421,
    • "name": "Shop volunteer",
    • "display_name": "Shop volunteer",
    • "type": "volunteer",
    • "role_base": "Event",
    • "approved": true,
    • "short_advert": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Enim tortor at auctor urna.",
    • "long_advert": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Enim tortor at auctor urna. Convallis aenean et tortor at risus. Vitae proin sagittis nisl rhoncus mattis. Scelerisque eleifend donec pretium vulputate sapien nec sagittis. Orci a scelerisque purus semper eget duis at tellus at.",
    • "disclaimer": "Enim tortor at auctor urna.",
    • "volunteer_manager": "Community manager",
    • "why_we_want_you": "Scelerisque eleifend donec pretium vulputate sapien nec sagittis. Orci a scelerisque purus semper eget duis at tellus at.",
    • "status": "active",
    • "editable": true,
    • "recruitable": true,
    • "minimum_age": 16,
    • "pdf_url": "http://example.com",
    • "risk_assessment_url": "http://example.com",
    • "minimum_address_history": "2",
    • "receives_team_notifications": true,
    • "family": {
      • "id": 21421,
      • "name": "Volunteer"
      },
    • "recruitment_category": {
      • "id": 12412,
      • "name": "Full",
      • "stages": [
        • {
          • "id": 21412,
          • "name": "Application",
          • "display_name": "Applied",
          • "actions": [
            • {
              • "id": 421421,
              • "name": "string",
              • "action_stage_id": 0,
              • "settings": { }
              }
            ]
          }
        ]
      },
    • "images": [],
    • "tasks": [
      • {
        • "id": 532523,
        • "task": "A pellentesque sit amet porttitor eget."
        }
      ],
    • "skills": [
      • {
        • "id": 543,
        • "skill": "Senectus et netus et malesuada fames ac turpis egestas maecenas."
        }
      ],
    • "benefits": [
      • {
        • "id": 5435,
        • "benefit": "Accumsan lacus vel facilisis volutpat est velit egestas dui id."
        }
      ],
    • "base": {
      • "id": 64,
      • "name": "Community",
      • "icon": "fa fa-users",
      • "order_id": 1
      }
    }
}

Show existing role profile

Retrieve information for an existing role profile

Authorizations:
JWT
path Parameters
id
required
string
query Parameters
include
string
Enum: "risk_activities" "teams" "permission_group" "additional_consents" "required_induction_modules" "optional_induction_modules" "created_by" "approved_by" "active_users_count" "inactive_users_count" "opportunities_count" "applications_count"

Available includes for a role profile (comma separated list)

Responses

Response Schema: application/json
object (RoleProfile)

Detailed role profile information

Response samples

Content type
application/json
{
  • "data": {
    • "id": 241421,
    • "name": "Shop volunteer",
    • "display_name": "Shop volunteer",
    • "type": "volunteer",
    • "role_base": "Event",
    • "approved": true,
    • "short_advert": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Enim tortor at auctor urna.",
    • "long_advert": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Enim tortor at auctor urna. Convallis aenean et tortor at risus. Vitae proin sagittis nisl rhoncus mattis. Scelerisque eleifend donec pretium vulputate sapien nec sagittis. Orci a scelerisque purus semper eget duis at tellus at.",
    • "disclaimer": "Enim tortor at auctor urna.",
    • "volunteer_manager": "Community manager",
    • "why_we_want_you": "Scelerisque eleifend donec pretium vulputate sapien nec sagittis. Orci a scelerisque purus semper eget duis at tellus at.",
    • "status": "active",
    • "editable": true,
    • "recruitable": true,
    • "minimum_age": 16,
    • "pdf_url": "http://example.com",
    • "risk_assessment_url": "http://example.com",
    • "minimum_address_history": "2",
    • "receives_team_notifications": true,
    • "family": {
      • "id": 21421,
      • "name": "Volunteer"
      },
    • "recruitment_category": {
      • "id": 12412,
      • "name": "Full",
      • "stages": [
        • {
          • "id": 21412,
          • "name": "Application",
          • "display_name": "Applied",
          • "actions": [
            • {
              • "id": 421421,
              • "name": "string",
              • "action_stage_id": 0,
              • "settings": { }
              }
            ]
          }
        ]
      },
    • "images": [],
    • "tasks": [
      • {
        • "id": 532523,
        • "task": "A pellentesque sit amet porttitor eget."
        }
      ],
    • "skills": [
      • {
        • "id": 543,
        • "skill": "Senectus et netus et malesuada fames ac turpis egestas maecenas."
        }
      ],
    • "benefits": [
      • {
        • "id": 5435,
        • "benefit": "Accumsan lacus vel facilisis volutpat est velit egestas dui id."
        }
      ],
    • "base": {
      • "id": 64,
      • "name": "Community",
      • "icon": "fa fa-users",
      • "order_id": 1
      }
    }
}

Update a role profile

Update a role profiles information.

Some information is not editable once the role profile is approved.

Authorizations:
JWT
path Parameters
id
required
string
Request Body schema: application/json
id
integer

The unique ID of the Role Profile record

name
string

Name of the role profile

type
string
Enum: "volunteer" "non-volunteer" "system"

Role profile type

approved
boolean

Determine if this role profile has been approved

short_advert
string

Short advert text

long_advert
string

Long advert text

disclaimer
string

Role disclaimer text

volunteer_manager
string

Role manager

why_we_want_you
string

Why we want you text

status
string
Enum: "active" "inactive" "draft"

Role profile status

editable
boolean

Determine if this role is editable

recruitable
boolean

Determine if this role is recruitable

minimum_age
integer

The role profiles minimum age

pdf_url
string <uri>

PDF URL

risk_assessment_url
string <uri>

Risk assessment PDF URL

minimum_address_history
string

The minimum address history requirement

receives_team_notifications
boolean

Determine if this role receives team notifications

object (RoleFamily)
object (RecruitmentCategory)
Array of objects (Image)
Array of objects (RoleTask)
Array of objects (RoleSkill)
Array of objects (RoleBenefit)
object (RoleBase)

Responses

Response Schema: application/json
object (RoleProfile)

Detailed role profile information

Request samples

Content type
application/json
{
  • "id": 241421,
  • "name": "Shop volunteer",
  • "type": "volunteer",
  • "approved": true,
  • "short_advert": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Enim tortor at auctor urna.",
  • "long_advert": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Enim tortor at auctor urna. Convallis aenean et tortor at risus. Vitae proin sagittis nisl rhoncus mattis. Scelerisque eleifend donec pretium vulputate sapien nec sagittis. Orci a scelerisque purus semper eget duis at tellus at.",
  • "disclaimer": "Enim tortor at auctor urna.",
  • "volunteer_manager": "Community manager",
  • "why_we_want_you": "Scelerisque eleifend donec pretium vulputate sapien nec sagittis. Orci a scelerisque purus semper eget duis at tellus at.",
  • "status": "active",
  • "editable": true,
  • "recruitable": true,
  • "minimum_age": 16,
  • "pdf_url": "http://example.com",
  • "risk_assessment_url": "http://example.com",
  • "minimum_address_history": "2",
  • "receives_team_notifications": true,
  • "family": {
    • "id": 21421,
    • "name": "Volunteer"
    },
  • "recruitment_category": {
    • "id": 12412,
    • "name": "Full",
    • "stages": [
      • {
        • "id": 21412,
        • "name": "Application",
        • "display_name": "Applied",
        • "actions": [
          • {
            • "id": 421421,
            • "name": "string",
            • "action_stage_id": 0,
            • "settings": { }
            }
          ]
        }
      ]
    },
  • "images": [
    • {
      • "id": 45645,
      • "thumbnails": { }
      }
    ],
  • "tasks": [
    • {
      • "id": 532523,
      • "task": "A pellentesque sit amet porttitor eget."
      }
    ],
  • "skills": [
    • {
      • "id": 543,
      • "skill": "Senectus et netus et malesuada fames ac turpis egestas maecenas."
      }
    ],
  • "benefits": [
    • {
      • "id": 5435,
      • "benefit": "Accumsan lacus vel facilisis volutpat est velit egestas dui id."
      }
    ],
  • "base": {
    • "id": 64,
    • "name": "Community",
    • "icon": "fa fa-users",
    • "order_id": 1
    }
}

Response samples

Content type
application/json
No sample

Delete a role profile

Delete a role profile.

You can only delete a role that have no opportunities, no users and is marked as inactive.

path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "message": "400 Bad request",
  • "status_code": "400"
}