In cases when you can´t use Admin role you can create a custom security role and grant the following permissions:
Companies>Company Maintenance
Inquire - All
Companies>Contacts
Add - All
Edit - All
Inquire - All
Companies>Manage Attachments
Add - All
Inquire - All
Projects>Project Tickets
Add - All
Edit - All
Inquire - All
Service Desk/Service Tickets
Add - All
Edit - All
Inquire - All
If you would like to allow reopening add the following permissions:
Service Desk>Close Service Tickets
Edit - All
Inquire - All
System>API Reports
Add - All
Edit - All
Delete - All
Inquire - All
System>Manage Hosted API
Add - All
Edit - All
Delete - All
Inquire - All
System>Member Maintenance
Inquire - All
System>My Company
Inquire - All
System>Table Setup
Inquire - All
Edit - All
Add - All
Delete - All
System>Table Setup> Customize
Company / Company Status
General / Manage Hosted API
General / Workflow Rules
Service / Service Board
Service / Priority
Service/ Source
Company / Company Type
Time & Expense>Time Entry
Inquire - All
After that assign the created security role to the integration member.