Normal vector to part rotation space

I’m making a custom particle system but I have this problem

The generation face using Vector.FromNormalId(Enum.NormalId.Bottom) doesn’t not change with the rotation as it’s on the world space

This is what I want to achieve

This is my current code to calculate speed on the emission face (not acceleration)

local heartbeatSpeed = (particleInfo.HeartbeatSpeed / 10) * deltaTime * 60
heartbeatSpeed = Vector3.new(
    heartbeatSpeed, 
    heartbeatSpeed, 
    heartbeatSpeed
) * Vector3.FromNormalId(particleInfo.EmissionFace)

Solved using this

local rx, ry, rz = particleInfo.Emitter.CFrame:ToOrientation()
local normal = CFrame.Angles(ry, rx, rz) * Vector3.FromNormalId(particleInfo.EmissionFace)