# Competency Groups > query(`searchCompetencyGroups`) { limit: number; organizationId: string; page: number; searchTerm?: string; } => Pagination<CompetencyGroupWithChildrenResponse[]> (with competencies attr) > mutation(`createCompetencyGroup`) { defaultLocaleCode: Scalars['String']; definition: Scalars['String']; localeCodes: Array<Scalars['String']>; name: Scalars['String']; organizationId: Scalars['String']; } => CompetencyGroupWithChildrenResponse > mutation(`updateCompetencyGroup`) { _id: Scalars['String']; defaultLocaleCode: Scalars['String']; definition: Scalars['String']; localeCodes: Array<Scalars['String']>; name: Scalars['String']; organizationId: Scalars['String']; } => CompetencyGroupResponse (it's without children just name and definition) > mutation(`trashCompetencyGroup`) { organizationId: string, competencyGroupId: string } => {message, success} ## Competency Group > query(`competencyGroup`) { $organizationId: string, $competencyGroupId: string } => CompetencyGroupWithChildrenResponse (competencies) ### Competency > query(`competencies`) { organizationId: string, competencyGroupId: string, args: {localeCode: string[]} } => CompetencyWithItemsResponse[] ***** start now all crud operation ***** > mutation(`createCompetency`) { organizationId: string, competencyGroupId: string } => CompetencyResponse > mutation(`updateCompetencyLocale`) { organizationId: string, competencyGroupId: string, localeCodes: string[], input: fromTypes.UpdateCompetencyLocaleInput } => CompetencyResponse (update name and definition for any langCode) ---- used twice ---- > mutation(`deleteCompetency`) { _id: string, organizationId: string } => {message, success} #### Competency Item > mutation(`updateCompetencyItemOrder`) { organizationId: string, competencyGroupId: string, input: {_id, competencyId} } => CompetencyItemResponse > mutation(`updateCompetencyItem`) { organizationId: string, competencyGroupId: string, input: UpdateCompetencyItemInput (questionTitle, ...etc), withLocaleCodes: string[] } => CompetencyItemResponse ##### Competency sub item >mutation(`updateCompetencyItemResponseLogic`) { competencyGroupId: string; input: UpdateCompetencyItemResponseLogicSubItemInput; (questionTitle and so on) organizationId: string; withLocaleCodes: string[]; } => CompetencySubItemResponse