diff --git a/src/components/Connection/ConnectionResult.tsx b/src/components/Connection/ConnectionResult.tsx
index dfccf4c755655b7892a759ba0f9998b365a1d78d..f6113b4e05e537d6e11a141fc7404f69b2296ed6 100644
--- a/src/components/Connection/ConnectionResult.tsx
+++ b/src/components/Connection/ConnectionResult.tsx
@@ -4,7 +4,7 @@ import { useClient } from 'cozy-client'
 import { useDispatch } from 'react-redux'
 import { updatedFluidConnection } from 'store/global/global.actions'
 
-import { Account, FluidConnection, FluidStatus } from 'models'
+import { Account, FluidConnection, FluidStatus, Trigger } from 'models'
 import AccountService from 'services/account.service'
 import { getKonnectorUpdateError } from 'utils/utils'
 
@@ -14,10 +14,10 @@ import Button from '@material-ui/core/Button'
 import StyledBlackSpinner from 'components/CommonKit/Spinner/StyledBlackSpinner'
 
 import './connectionResult.scss'
-import UsageEventService from 'services/usageEvent.service'
 import DateChartService from 'services/dateChart.service'
 import { FluidState, FluidType } from 'enum/fluid.enum'
 import { DateTime } from 'luxon'
+import TriggerService from 'services/triggers.service'
 
 interface ConnectionResultProps {
   fluidStatus: FluidStatus
@@ -57,12 +57,22 @@ const ConnectionResult: React.FC<ConnectionResultProps> = ({
     setUpdating(false)
   }
 
-  const deleteAccount = async () => {
+  const deleteAccountsAndTriggers = async () => {
     setUpdating(true)
     try {
       if (account) {
         const accountService = new AccountService(client)
-        await accountService.deleteAccount(account)
+        const triggerService = new TriggerService(client)
+        const accounts: Account[] = await accountService.getAccountsByType(
+          account.account_type
+        )
+        for (const _account of accounts) {
+          const trigger: Trigger | null = await triggerService.getTriggerForAccount(
+            _account
+          )
+          if (trigger) await triggerService.deleteTrigger(trigger)
+          await accountService.deleteAccount(_account)
+        }
         await handleAccountDeletion()
       }
     } catch (error) {
@@ -211,7 +221,7 @@ const ConnectionResult: React.FC<ConnectionResultProps> = ({
       <div className="inline-buttons">
         <Button
           aria-label={t('konnector_form.accessibility.button_delete')}
-          onClick={deleteAccount}
+          onClick={deleteAccountsAndTriggers}
           disabled={updating}
           classes={{
             root: 'btn-secondary-positive',
diff --git a/src/services/account.service.spec.ts b/src/services/account.service.spec.ts
index ff8001fcea6fca76b45557640f59740d89cfcec4..319d86144931e812fc47053dbcdfde031c945f3a 100644
--- a/src/services/account.service.spec.ts
+++ b/src/services/account.service.spec.ts
@@ -5,10 +5,10 @@ import mockClient from '../../tests/__mocks__/client'
 import AccountService from './account.service'
 import { accountsData } from '../../tests/__mocks__/accountsData.mock'
 import { konnectorsData } from '../../tests/__mocks__/konnectorsData.mock'
+import { triggersEnedisData } from '../../tests/__mocks__/triggersData.mock'
 
 jest.mock('cozy-harvest-lib/dist/connections/accounts')
 import * as harvestLibAccounts from 'cozy-harvest-lib/dist/connections/accounts'
-import { triggersEnedisData } from '../../tests/__mocks__/triggersData.mock'
 const mockHavestLibAccounts = harvestLibAccounts as jest.Mocked<
   typeof harvestLibAccounts
 >
@@ -105,6 +105,24 @@ describe('Account service', () => {
     })
   })
 
+  describe('getAccountsByType method', () => {
+    it('should return all accounts for a type when several account', async () => {
+      const mockType = 'enedisgrandlyon'
+      const mockAccounts = accountsData
+      mockAccounts[1].account_type = mockType
+      mockAccounts[2].account_type = mockType
+      const mockQueryResult: QueryResult<Account[]> = {
+        data: [...mockAccounts],
+        bookmark: '',
+        next: false,
+        skip: 0,
+      }
+      mockClient.query.mockResolvedValueOnce(mockQueryResult)
+      const result = await accountService.getAccountsByType(mockType)
+      expect(result).toEqual(mockAccounts)
+    })
+  })
+
   describe('updateAccount method', () => {
     it('should return updated account when updateAccount successfully', async () => {
       mockHavestLibAccounts.updateAccount.mockResolvedValueOnce(accountsData[2])
diff --git a/src/services/account.service.ts b/src/services/account.service.ts
index c6969d61926b82233bbcc030c0db6878382004bb..e5845eb0aa8ccca35f14711fb8be6265d3b49e30 100644
--- a/src/services/account.service.ts
+++ b/src/services/account.service.ts
@@ -95,6 +95,16 @@ export default class AccountService {
     }
   }
 
+  public async getAccountsByType(type: string): Promise<Account[]> {
+    const query: QueryDefinition = Q(ACCOUNTS_DOCTYPE)
+      // eslint-disable-next-line @typescript-eslint/camelcase
+      .where({ account_type: type })
+    const { data: accounts }: QueryResult<Account[]> = await this._client.query(
+      query
+    )
+    return accounts
+  }
+
   public async updateAccount(account: Account): Promise<Account> {
     try {
       const updatedAccount: Account = await updateAccount(this._client, account)
diff --git a/src/services/triggers.service.spec.ts b/src/services/triggers.service.spec.ts
index 8511b0084e285b402bb5d5d4fe86bb7517f8f757..439571a4ef7680fdb5ab277443e6b5967f1edd59 100644
--- a/src/services/triggers.service.spec.ts
+++ b/src/services/triggers.service.spec.ts
@@ -130,4 +130,21 @@ describe('TriggerService service', () => {
       }
     })
   })
+
+  describe('deleteTrigger method', () => {
+    it('should return true when destroy successfully', async () => {
+      mockClient.destroy.mockRejectedValueOnce(true)
+      const result = await triggerService.deleteTrigger(triggersData[0])
+      expect(result).toBe(true)
+    })
+
+    it('should throw error when destroy unsuccessfully', async () => {
+      mockClient.destroy.mockRejectedValueOnce(new Error())
+      try {
+        await triggerService.deleteTrigger(triggersData[0])
+      } catch (error) {
+        expect(error).toEqual(new Error('Delete trigger failed'))
+      }
+    })
+  })
 })
diff --git a/src/services/triggers.service.ts b/src/services/triggers.service.ts
index 03ed174705fa044b5da5aa47295f0299cc9473bd..fae71f7d70999a8ab541182628d46b007dc6c559 100644
--- a/src/services/triggers.service.ts
+++ b/src/services/triggers.service.ts
@@ -89,4 +89,14 @@ export default class TriggerService {
       throw new Error('Fetch trigger state failed')
     }
   }
+
+  public async deleteTrigger(trigger: Trigger): Promise<boolean> {
+    try {
+      await this._client.destroy(trigger)
+      return true
+    } catch (error) {
+      console.log(error)
+      throw new Error('Delete trigger failed')
+    }
+  }
 }